Skip to content

Commit 92f9008

Browse files
authored
ENH: Enable a minimal theme option for simpler admonition style (#106)
* MAINT: review of docs and minor maintenance * ENH: enable a minimal theme for admonition styles * update colour scheme * doc: add docs on new minimal theme option * docs: update docs with new minimal theme option * set docs to default value False for proof_minimal_theme
1 parent 6f35331 commit 92f9008

File tree

7 files changed

+269
-1
lines changed

7 files changed

+269
-1
lines changed
74.1 KB
Loading
75.9 KB
Loading

docs/source/conf.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,10 @@
4949
"use_issues_button": True,
5050
"use_repository_button": True,
5151
}
52+
53+
# sphinx-proof extension options
54+
proof_minimal_theme = False
55+
56+
# MyST Parser Configuration
57+
58+
myst_enable_extensions = ["dollarmath", "amsmath"]

docs/source/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
66
install
77
syntax
8+
options
89
testing
910
zreferences
1011
```

docs/source/options.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Options
2+
3+
This package has the option to choose a more **minimal** color scheme.
4+
5+
The aim is to create admonitions that are clearly different to the core text with
6+
colors that do not over emphasises the admonition such as
7+
8+
```{figure} _static/img/definition-minimal.png
9+
```
10+
11+
compared to the current default
12+
13+
```{figure} _static/img/definition.png
14+
```
15+
16+
To enable the `minimal` color scheme you can use the following.
17+
18+
## Jupyter Book Project
19+
20+
Add `proof_minimal_theme = True` to your `_config.yml`
21+
22+
```yaml
23+
sphinx:
24+
config:
25+
proof_minimal_theme: true
26+
```
27+
28+
## Sphinx Project
29+
30+
Add `proof_minimal_theme = True` to your `conf.py`

sphinx_proof/__init__.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,13 @@ def init_numfig(app: Sphinx, config: Config) -> None:
6464

6565

6666
def copy_asset_files(app: Sphinx, exc: Union[bool, Exception]):
67-
static_path = Path(__file__).parent.joinpath("_static", "proof.css").absolute()
67+
68+
if app.config["proof_minimal_theme"]:
69+
static_path = (
70+
Path(__file__).parent.joinpath("_static", "minimal", "proof.css").absolute()
71+
)
72+
else:
73+
static_path = Path(__file__).parent.joinpath("_static", "proof.css").absolute()
6874
asset_files = [str(static_path)]
6975

7076
if exc is None:
@@ -74,6 +80,8 @@ def copy_asset_files(app: Sphinx, exc: Union[bool, Exception]):
7480

7581
def setup(app: Sphinx) -> Dict[str, Any]:
7682

83+
app.add_config_value("proof_minimal_theme", False, "html")
84+
7785
app.add_css_file("proof.css")
7886
app.connect("build-finished", copy_asset_files)
7987
app.connect("config-inited", init_numfig)
Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
/*********************************************
2+
* Variables *
3+
*********************************************/
4+
:root {
5+
--theorem-border-color: rgba(68,138,255,.1);
6+
--axiom-border-color: #ffc107;
7+
--criterion-border-color: #fd7e14;
8+
--lemma-border-color: #36cf03;
9+
--definition-border-color: #007bff;
10+
--remark-border-color: #79ff6f;
11+
--conjecture-border-color: #775f15;
12+
--corollary-border-color: #c500c1;
13+
--example-border-color: #f9377b;
14+
--property-border-color: #fdf914;
15+
--obseration-border-color: #7707ff;
16+
--proposition-border-color: #4f7aa8;
17+
--assumption-border-color: #07fffb;
18+
19+
/* --note-title-color: rgba(68,138,255,.1);
20+
--note-border-color: #007bff;
21+
--warning-title-color: rgba(220,53,69,.1);
22+
--warning-border-color: #dc3545;
23+
--hint-title-color: rgba(255,193,7,.2);
24+
--hint-border-color: #ffc107;
25+
--caution-title-color: rgba(253,126,20,.1);
26+
--caution-border-color: #fd7e14; */
27+
28+
--grey-title-color: rgba(204,204,204,.2);
29+
--grey-border-color: #ccc;
30+
}
31+
32+
/*********************************************
33+
* Main body *
34+
*********************************************/
35+
36+
/* Remove content box */
37+
div.proof p.admonition-title::before {
38+
content: none;
39+
}
40+
41+
/*********************************************
42+
* Proof *
43+
*********************************************/
44+
div#proof{
45+
padding: .4rem .6rem .4rem 2rem !important;
46+
border-color: var(--grey-border-color);
47+
background-color: none;
48+
}
49+
50+
/*********************************************
51+
* Theorem *
52+
*********************************************/
53+
div.theorem {
54+
border-color: var(--theorem-border-color);
55+
background-color: none;
56+
}
57+
58+
div.theorem p.admonition-title {
59+
background-color: transparent;
60+
}
61+
62+
/*********************************************
63+
* Axiom *
64+
*********************************************/
65+
div.axiom {
66+
border-color: var(--axiom-border-color);
67+
background-color: none;
68+
}
69+
70+
div.axiom p.admonition-title {
71+
background-color: transparent;
72+
}
73+
74+
/*********************************************
75+
* Criterion *
76+
*********************************************/
77+
div.criterion {
78+
border-color: var(--criterion-border-color);
79+
background-color: none;
80+
}
81+
82+
div.criterion p.admonition-title {
83+
background-color: transparent;
84+
}
85+
86+
/*********************************************
87+
* Lemma *
88+
*********************************************/
89+
div.lemma {
90+
border-color: var(--lemma-border-color);
91+
background-color: none;
92+
}
93+
94+
div.lemma p.admonition-title {
95+
background-color: transparent;
96+
}
97+
98+
/*********************************************
99+
* Definition *
100+
*********************************************/
101+
div.definition {
102+
border-color: var(--definition-border-color);
103+
background-color: none;
104+
}
105+
106+
div.definition p.admonition-title {
107+
background-color: transparent;
108+
}
109+
110+
/*********************************************
111+
* Remark *
112+
*********************************************/
113+
div.remark {
114+
border-color: var(--remark-border-color);
115+
background-color: none;
116+
}
117+
118+
div.remark p.admonition-title {
119+
background-color: transparent;
120+
}
121+
122+
/*********************************************
123+
* Conjecture *
124+
*********************************************/
125+
div.conjecture {
126+
border-color: var(--conjecture-border-color);
127+
background-color: none;
128+
}
129+
130+
div.conjecture p.admonition-title {
131+
background-color: transparent;
132+
}
133+
134+
/*********************************************
135+
* Corollary *
136+
*********************************************/
137+
div.corollary {
138+
border-color: var(--corollary-border-color);
139+
background-color: none;
140+
}
141+
142+
div.corollary p.admonition-title {
143+
background-color: transparent;
144+
}
145+
146+
/*********************************************
147+
* Algorithm *
148+
*********************************************/
149+
div.algorithm {
150+
border: none;
151+
background-color: none;
152+
}
153+
154+
div.algorithm p.admonition-title {
155+
background-color: transparent;
156+
border-top: .15rem solid var(--grey-border-color);
157+
border-bottom: .15rem solid var(--grey-border-color);
158+
}
159+
160+
div.algorithm div.section {
161+
font-family: SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;
162+
font-size: .85rem;
163+
}
164+
165+
/*********************************************
166+
* Example *
167+
*********************************************/
168+
div.example {
169+
border-color: var(--example-border-color);
170+
background-color: none;
171+
}
172+
173+
div.example p.admonition-title {
174+
background-color: transparent;
175+
}
176+
177+
/*********************************************
178+
* Property *
179+
*********************************************/
180+
div.property {
181+
border-color: var(--property-border-color);
182+
background-color: none;
183+
}
184+
185+
div.property p.admonition-title {
186+
background-color: transparent;
187+
}
188+
189+
/*********************************************
190+
* Observation *
191+
*********************************************/
192+
div.observation {
193+
border-color: var(--observation-border-color);
194+
background-color: none;
195+
}
196+
197+
div.observation p.admonition-title {
198+
background-color: transparent;
199+
}
200+
201+
/*********************************************
202+
* Proposition *
203+
*********************************************/
204+
div.proposition {
205+
border-color: var(--proposition-border-color);
206+
background-color: none;
207+
}
208+
209+
div.proposition p.admonition-title {
210+
background-color: transparent;
211+
}
212+
/*********************************************
213+
* Assumption *
214+
*********************************************/
215+
div.assumption {
216+
border-color: var(--assumption-border-color);
217+
background-color: none;
218+
}
219+
220+
div.assumption p.admonition-title {
221+
background-color: transparent;
222+
}

0 commit comments

Comments
 (0)