From e8ebe0a4259885132de1db8935a813424c3c61bd Mon Sep 17 00:00:00 2001 From: trag1c Date: Thu, 22 Jun 2023 17:19:34 +0200 Subject: [PATCH] Update docs to match updated logo and color palette (#5283) ![8511](https://github.com/astral-sh/ruff/assets/77130613/862d151f-ff1d-4da8-9230-8dd32f41f197) ## Summary Supersedes #5277, includes redesigned dark mode. ## Test Plan * `python scripts/generate_mkdocs.py` * `mkdocs serve` --- README.md | 6 +-- docs/assets/bolt.svg | 3 ++ docs/assets/ruff-favicon.png | Bin 28017 -> 751 bytes docs/assets/ruff.svg | 6 --- docs/stylesheets/extra.css | 69 +++++++++++++++++++++++++++++++++++ mkdocs.template.yml | 10 ++--- scripts/transform_readme.py | 4 +- 7 files changed, 82 insertions(+), 16 deletions(-) create mode 100644 docs/assets/bolt.svg delete mode 100644 docs/assets/ruff.svg create mode 100644 docs/stylesheets/extra.css diff --git a/README.md b/README.md index fdf828ab1c..5c77173aad 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,9 @@ An extremely fast Python linter, written in Rust.

- - - Shows a bar chart with benchmark results. + + + Shows a bar chart with benchmark results.

diff --git a/docs/assets/bolt.svg b/docs/assets/bolt.svg new file mode 100644 index 0000000000..1d2a503d51 --- /dev/null +++ b/docs/assets/bolt.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/assets/ruff-favicon.png b/docs/assets/ruff-favicon.png index 7395c3fbce1d30afc21d1d7f0375f23f80c75a78..0a6d0871c7bfe46ed709aab4eac94710a18d0f49 100644 GIT binary patch literal 751 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 diff --git a/docs/assets/ruff.svg b/docs/assets/ruff.svg deleted file mode 100644 index 4494fe78ff..0000000000 --- a/docs/assets/ruff.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - \ No newline at end of file diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 0000000000..11835649c6 --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,69 @@ +:root { + --black: #261230; + --white: #ffffff; + --astral-purple: #1f092a; + --astral-purple-alt: #30173d; + --light-gray: #826894; + --radiate: #d7ff64; + --flare: #6340ac; + --rock: #78876e; + --galaxy: #261230; + --space: #30173d; + --comet: #6f5d6f; + --cosmic: #de5fe9; + --sun: #ffac2f; + --electron: #46ebe1; + --aurora: #46eb74; + --constellation: #5f6de9; + --neutron: #cff3cf; + --proton: #f6afbc; + --nebula: #cdcbfb; + --supernova: #f1aff6; + --starlight: #f4f4f1; + --lunar: #fbf2fc; + --asteroid: #e3cee3; + --crater: #f0dfdf; +} + +[data-md-color-scheme="astral-light"] { + --md-default-bg-color--dark: var(--black); + --md-primary-fg-color: var(--galaxy); + --md-typeset-a-color: var(--flare); + --md-accent-fg-color: var(--cosmic); +} + +[data-md-color-scheme="astral-dark"] { + --md-default-bg-color: var(--astral-purple); + --md-default-fg-color: var(--white); + --md-default-fg-color--light: var(--white); + --md-default-fg-color--lighter: var(--white); + --md-primary-fg-color: var(--astral-purple-alt); + --md-primary-bg-color: var(--white); + --md-accent-fg-color: var(--radiate); + + --md-typeset-color: var(--white); + --md-typeset-a-color: var(--radiate); + --md-typeset-mark-color: var(--sun); + + --md-code-fg-color: var(--white); + --md-code-bg-color: var(--astral-purple-alt); + + --md-code-hl-comment-color: var(--light-gray); + --md-code-hl-punctuation-color: var(--light-gray); + --md-code-hl-generic-color: var(--light-gray); + --md-code-hl-variable-color: var(--light-gray); + --md-code-hl-string-color: var(--aurora); + --md-code-hl-keyword-color: var(--sun); + --md-code-hl-operator-color: var(--sun); + --md-code-hl-number-color: hsla(0, 67%, 50%, 1); + --md-code-hl-special-color: hsla(340, 83%, 47%, 1); + --md-code-hl-function-color: var(--cosmic); + --md-code-hl-constant-color: var(--radiate); + --md-code-hl-name-color: var(--md-code-fg-color); + + --md-typeset-del-color: hsla(6, 90%, 60%, 0.15); + --md-typeset-ins-color: hsla(150, 90%, 44%, 0.15); + + --md-typeset-table-color: hsla(0, 0%, 100%, 0.12); + --md-typeset-table-color--light: hsla(0, 0%, 100%, 0.035); +} diff --git a/mkdocs.template.yml b/mkdocs.template.yml index c789f2482f..ec7dab6ced 100644 --- a/mkdocs.template.yml +++ b/mkdocs.template.yml @@ -1,7 +1,7 @@ site_name: Ruff theme: name: material - logo: assets/ruff.svg + logo: assets/bolt.svg favicon: assets/ruff-favicon.png features: - navigation.instant @@ -14,14 +14,12 @@ theme: - content.code.copy palette: - media: "(prefers-color-scheme: light)" - scheme: default - primary: red + scheme: astral-light toggle: icon: material/weather-sunny name: Switch to dark mode - media: "(prefers-color-scheme: dark)" - scheme: slate - primary: red + scheme: astral-dark toggle: icon: material/weather-night name: Switch to light mode @@ -50,3 +48,5 @@ markdown_extensions: anchor_linenums: true plugins: - search +extra_css: + - stylesheets/extra.css diff --git a/scripts/transform_readme.py b/scripts/transform_readme.py index d2afcdf1bf..963f55ca3f 100644 --- a/scripts/transform_readme.py +++ b/scripts/transform_readme.py @@ -8,8 +8,8 @@ import argparse from pathlib import Path URL = "https://user-images.githubusercontent.com/1309177/{}.svg" -URL_LIGHT = URL.format("212613257-5f4bca12-6d6b-4c79-9bac-51a4c6d08928") -URL_DARK = URL.format("212613422-7faaf278-706b-4294-ad92-236ffcab3430") +URL_LIGHT = URL.format("232603516-4fb4892d-585c-4b20-b810-3db9161831e4") +URL_DARK = URL.format("232603514-c95e9b0f-6b31-43de-9a80-9e844173fd6a") # https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#specifying-the-theme-an-image-is-shown-to GITHUB = f"""