diff --git a/docs/source/_static/img/definition-minimal.png b/docs/source/_static/img/definition-minimal.png new file mode 100644 index 0000000..83eaa92 Binary files /dev/null and b/docs/source/_static/img/definition-minimal.png differ diff --git a/docs/source/_static/img/definition.png b/docs/source/_static/img/definition.png new file mode 100644 index 0000000..2e755b1 Binary files /dev/null and b/docs/source/_static/img/definition.png differ diff --git a/docs/source/conf.py b/docs/source/conf.py index 12d05fd..cba9612 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -49,3 +49,10 @@ "use_issues_button": True, "use_repository_button": True, } + +# sphinx-proof extension options +proof_minimal_theme = False + +# MyST Parser Configuration + +myst_enable_extensions = ["dollarmath", "amsmath"] diff --git a/docs/source/index.md b/docs/source/index.md index 0774830..988dccc 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -5,6 +5,7 @@ install syntax +options testing zreferences ``` diff --git a/docs/source/options.md b/docs/source/options.md new file mode 100644 index 0000000..6433d49 --- /dev/null +++ b/docs/source/options.md @@ -0,0 +1,30 @@ +# Options + +This package has the option to choose a more **minimal** color scheme. + +The aim is to create admonitions that are clearly different to the core text with +colors that do not over emphasises the admonition such as + +```{figure} _static/img/definition-minimal.png +``` + +compared to the current default + +```{figure} _static/img/definition.png +``` + +To enable the `minimal` color scheme you can use the following. + +## Jupyter Book Project + +Add `proof_minimal_theme = True` to your `_config.yml` + +```yaml +sphinx: + config: + proof_minimal_theme: true +``` + +## Sphinx Project + +Add `proof_minimal_theme = True` to your `conf.py` diff --git a/sphinx_proof/__init__.py b/sphinx_proof/__init__.py index 607bc5d..6924635 100644 --- a/sphinx_proof/__init__.py +++ b/sphinx_proof/__init__.py @@ -64,7 +64,13 @@ def init_numfig(app: Sphinx, config: Config) -> None: def copy_asset_files(app: Sphinx, exc: Union[bool, Exception]): - static_path = Path(__file__).parent.joinpath("_static", "proof.css").absolute() + + if app.config["proof_minimal_theme"]: + static_path = ( + Path(__file__).parent.joinpath("_static", "minimal", "proof.css").absolute() + ) + else: + static_path = Path(__file__).parent.joinpath("_static", "proof.css").absolute() asset_files = [str(static_path)] if exc is None: @@ -74,6 +80,8 @@ def copy_asset_files(app: Sphinx, exc: Union[bool, Exception]): def setup(app: Sphinx) -> Dict[str, Any]: + app.add_config_value("proof_minimal_theme", False, "html") + app.add_css_file("proof.css") app.connect("build-finished", copy_asset_files) app.connect("config-inited", init_numfig) diff --git a/sphinx_proof/_static/minimal/proof.css b/sphinx_proof/_static/minimal/proof.css new file mode 100644 index 0000000..16c552e --- /dev/null +++ b/sphinx_proof/_static/minimal/proof.css @@ -0,0 +1,222 @@ +/********************************************* +* Variables * +*********************************************/ +:root { + --theorem-border-color: rgba(68,138,255,.1); + --axiom-border-color: #ffc107; + --criterion-border-color: #fd7e14; + --lemma-border-color: #36cf03; + --definition-border-color: #007bff; + --remark-border-color: #79ff6f; + --conjecture-border-color: #775f15; + --corollary-border-color: #c500c1; + --example-border-color: #f9377b; + --property-border-color: #fdf914; + --obseration-border-color: #7707ff; + --proposition-border-color: #4f7aa8; + --assumption-border-color: #07fffb; + + /* --note-title-color: rgba(68,138,255,.1); + --note-border-color: #007bff; + --warning-title-color: rgba(220,53,69,.1); + --warning-border-color: #dc3545; + --hint-title-color: rgba(255,193,7,.2); + --hint-border-color: #ffc107; + --caution-title-color: rgba(253,126,20,.1); + --caution-border-color: #fd7e14; */ + + --grey-title-color: rgba(204,204,204,.2); + --grey-border-color: #ccc; +} + +/********************************************* +* Main body * +*********************************************/ + +/* Remove content box */ +div.proof p.admonition-title::before { + content: none; +} + +/********************************************* +* Proof * +*********************************************/ +div#proof{ + padding: .4rem .6rem .4rem 2rem !important; + border-color: var(--grey-border-color); + background-color: none; +} + +/********************************************* +* Theorem * +*********************************************/ +div.theorem { + border-color: var(--theorem-border-color); + background-color: none; +} + +div.theorem p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Axiom * +*********************************************/ +div.axiom { + border-color: var(--axiom-border-color); + background-color: none; +} + +div.axiom p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Criterion * +*********************************************/ +div.criterion { + border-color: var(--criterion-border-color); + background-color: none; +} + +div.criterion p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Lemma * +*********************************************/ +div.lemma { + border-color: var(--lemma-border-color); + background-color: none; +} + +div.lemma p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Definition * +*********************************************/ +div.definition { + border-color: var(--definition-border-color); + background-color: none; +} + +div.definition p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Remark * +*********************************************/ +div.remark { + border-color: var(--remark-border-color); + background-color: none; +} + +div.remark p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Conjecture * +*********************************************/ +div.conjecture { + border-color: var(--conjecture-border-color); + background-color: none; +} + +div.conjecture p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Corollary * +*********************************************/ +div.corollary { + border-color: var(--corollary-border-color); + background-color: none; +} + +div.corollary p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Algorithm * +*********************************************/ +div.algorithm { + border: none; + background-color: none; +} + +div.algorithm p.admonition-title { + background-color: transparent; + border-top: .15rem solid var(--grey-border-color); + border-bottom: .15rem solid var(--grey-border-color); +} + +div.algorithm div.section { + font-family: SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace; + font-size: .85rem; +} + +/********************************************* +* Example * +*********************************************/ +div.example { + border-color: var(--example-border-color); + background-color: none; +} + +div.example p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Property * +*********************************************/ +div.property { + border-color: var(--property-border-color); + background-color: none; +} + +div.property p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Observation * +*********************************************/ +div.observation { + border-color: var(--observation-border-color); + background-color: none; +} + +div.observation p.admonition-title { + background-color: transparent; +} + +/********************************************* +* Proposition * +*********************************************/ +div.proposition { + border-color: var(--proposition-border-color); + background-color: none; +} + +div.proposition p.admonition-title { + background-color: transparent; +} +/********************************************* +* Assumption * +*********************************************/ +div.assumption { + border-color: var(--assumption-border-color); + background-color: none; +} + +div.assumption p.admonition-title { + background-color: transparent; +}