Is there a good strategy or method to produce “cascading” styles?

I want to write a theorem in form of group of cells in a notebook.

• I want all the cells within the theorem grouping have the same styling such as background color, text font, etc.

• I would also like the entire theorem group to have a frame around it.

So any display formula, text cell, item list, etc, would have a uniform appearance determined by the cell grouping.

I want to be able to accomplish this using a style sheet.

The only way I can think of to accomplish such a thing is to create a separate style for each type of potential member cell for each section type: definition, lemma, theorem, example, quotation, etc. That would be insane.

The following is what a theorem and proof look like using my modified textbook style sheet. Which I've pretty much given up on. The background color is really not as important as the framing, but I would take one or the other. It's hard to summarize the number of different issues which come up when trying to produce this kind of consistent appearance.

It doesn't, for example, have the equation in "Equation" style, which would be preferable.

A simple copy and paste:

Theorem 2.1: If \[GothicF]:\[DoubleStruckCapitalR]^n->\[DoubleStruckCapitalR]^m is differentiable at \[GothicA], then Underscript[\[ForAll], \[GothicV]\[Element]\[DoubleStruckCapitalR]^n]\[Exists]\!$$\*SubscriptBox[\(\[CapitalDifferentialD]$$, $$\[GothicV]$$]$$\[GothicF][\[GothicA]]$$\)=\[DifferentialD]Subscript[\[GothicF], \[GothicA]][\[GothicV]].

Proof: Substitute t\[InvisibleComma]\[GothicV]=\[GothicH] in the expression defining differentiability

Underscript[Lim, t->0][((\[GothicF][\[GothicA]+t\[InvisibleComma]\[GothicV]]-\[GothicF][\[GothicA]]-\[DifferentialD]Subscript[\[GothicF], \[GothicA]][t\[InvisibleComma]\[GothicV]])/\[LeftBracketingBar]t\[InvisibleComma]\[GothicV]\[RightBracketingBar])]=\[GothicZero]
=1/\[LeftBracketingBar]\[GothicV]\[RightBracketingBar] (Underscript[Lim, t->0][((\[GothicF][\[GothicA]+t\[InvisibleComma]\[GothicV]]-\[GothicF][\[GothicA]])/(t\[InvisibleComma]))]-\[DifferentialD]Subscript[\[GothicF], \[GothicA]][\[GothicV]])

Thus

Underscript[Lim, t->0][((\[GothicF][\[GothicA]+t\[InvisibleComma]\[GothicV]]-\[GothicF][\[GothicA]])/(t\[InvisibleComma]))]\[Congruent]\!$$\*SubscriptBox[\(\[CapitalDifferentialD]$$, $$\[GothicV]$$]$$\[GothicF][\[GothicA]]$$\)=\[DifferentialD]Subscript[\[GothicF], \[GothicA]][\[GothicV]]

This is a Ctrl+Shift+E version of the same:

Cell[TextData[{
"Theorem 2.1: If ",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{"\[GothicF]", ":",
SuperscriptBox["\[DoubleStruckCapitalR]", "n"]}], "\[Rule]",
SuperscriptBox["\[DoubleStruckCapitalR]", "m"]}],
" is differentiable at ",
Cell[BoxData[
", then ",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{
UnderscriptBox["\[ForAll]",
RowBox[{"\[GothicV]", "\[Element]",
SuperscriptBox["\[DoubleStruckCapitalR]", "n"]}]],
RowBox[{"\[Exists]",
StyleBox[
RowBox[{
SubscriptBox["\[CapitalDifferentialD]", "\[GothicV]"],
RowBox[{"\[GothicF]", "[", "\[GothicA]", "]"}]}],
FontColor->RGBColor[1, 0, 0]]}]}],
StyleBox["=",
FontColor->RGBColor[1, 0, 0]],
StyleBox[
RowBox[{"\[DifferentialD]",
RowBox[{
SubscriptBox["\[GothicF]", "\[GothicA]"], "[", "\[GothicV]",
"]"}]}],
FontColor->RGBColor[1, 0, 0]]}], TraditionalForm]],
Background->RGBColor[1, 1, 0]],
"."
}], "Theorem",
CellTags->"b:1"]

Cell[TextData[{
"Proof: Substitute ",
Cell[BoxData[
FormBox[
RowBox[{"t", "\[InvisibleComma]",
RowBox[{"\[GothicV]", "=", "\[GothicH]"}]}], TraditionalForm]]],
" in the expression defining differentiability\n\n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{
UnderscriptBox["Lim",
RowBox[{"t", "\[Rule]", "0"}]],
RowBox[{"[",
FractionBox[
RowBox[{
RowBox[{"\[GothicF]", "[",
RowBox[{
RowBox[{"\[GothicA]", "+", "t"}], "\[InvisibleComma]",
"\[GothicV]"}], "]"}], "-",
RowBox[{"\[GothicF]", "[", "\[GothicA]", "]"}], "-",
RowBox[{"\[DifferentialD]",
RowBox[{
SubscriptBox["\[GothicF]", "\[GothicA]"], "[",
RowBox[{"t", "\[InvisibleComma]", "\[GothicV]"}], "]"}]}]}],
RowBox[{"\[LeftBracketingBar]",
RowBox[{"t", "\[InvisibleComma]", "\[GothicV]"}],
"\[RightBracketingBar]"}]], "]"}]}], "=", "\[GothicZero]"}],
"\n",
Cell[BoxData[
FormBox[
RowBox[{"=",
RowBox[{
FractionBox["1",
RowBox[{
"\[LeftBracketingBar]", "\[GothicV]",
"\[RightBracketingBar]"}]],
RowBox[{"(",
RowBox[{
RowBox[{
UnderscriptBox["Lim",
RowBox[{"t", "\[Rule]", "0"}]],
RowBox[{"[",
FractionBox[
RowBox[{
RowBox[{"\[GothicF]", "[",
RowBox[{
RowBox[{"\[GothicA]", "+", "t"}], "\[InvisibleComma]",
"\[GothicV]"}], "]"}], "-",
RowBox[{"\[GothicF]", "[", "\[GothicA]", "]"}]}],
RowBox[{"t", "\[InvisibleComma]"}]], "]"}]}], "-",
RowBox[{"\[DifferentialD]",
RowBox[{
SubscriptBox["\[GothicF]", "\[GothicA]"], "[", "\[GothicV]",
"\n\nThus\n\n",
Cell[BoxData[
FormBox[
RowBox[{
RowBox[{
RowBox[{
UnderscriptBox["Lim",
RowBox[{"t", "\[Rule]", "0"}]],
RowBox[{"[",
FractionBox[
RowBox[{
RowBox[{"\[GothicF]", "[",
RowBox[{
RowBox[{"\[GothicA]", "+", "t"}], "\[InvisibleComma]",
"\[GothicV]"}], "]"}], "-",
RowBox[{"\[GothicF]", "[", "\[GothicA]", "]"}]}],
RowBox[{"t", "\[InvisibleComma]"}]], "]"}]}], "\[Congruent]",

RowBox[{
SubscriptBox["\[CapitalDifferentialD]", "\[GothicV]"],
RowBox[{"\[GothicF]", "[", "\[GothicA]", "]"}]}]}], "=",
RowBox[{"\[DifferentialD]",
RowBox[{
SubscriptBox["\[GothicF]", "\[GothicA]"], "[", "\[GothicV]",