diff --git a/branding/README.md b/branding/README.md index 9a9eaab..2dfe7cc 100644 --- a/branding/README.md +++ b/branding/README.md @@ -1,54 +1,65 @@ -# Branding v3a +# Branding v4 — Signal -Vector remaster of the original swoosh-check logo. Same composition, same -brand blue **#2c9ccd** — but clean curves that stay sharp at any resolution. -The COMMIT wordmark carries a background-coloured keyline so the letters stay -legible where they cross the check. +The mark is a commit on a history line, ticked: the thing Commit Check looks +at, and the verdict. It replaces the swoosh check of v1–v3. The same set is +used on [commit-check.com](https://commit-check.com), in the org avatar, the +README badge and the social previews, so they read as one project. + +| Token | Value | Use | +| --- | --- | --- | +| Ink | `#0b1620` | Dark grounds, the mark's tile, text on light | +| Signal Blue | `#2c9ccd` | The mark, accents, buttons (with Ink text). The same blue the badge has always used | +| Paper | `#f4f6f7` | Light grounds | +| Display face | Bricolage Grotesque 700–800 | The wordmark and headings | +| Text face | Instrument Sans | Everything else | +| Code face | JetBrains Mono, ligatures off | Commands, rule IDs, output | | File | Use it for | | --- | --- | -| `avatar.png` | The org avatar. White swoosh on brand blue, 1024x1024, wordless. | -| `logo.png` / `logo-dark.png` | The full lockup for light / dark backgrounds (keyline colour differs). | -| `logo-mark.png` | The swoosh alone, transparent, brand blue. | -| `banner-light.png` / `banner-dark.png` | READMEs and docs. Pair them in a ``. Lockup on the left, a sample check run on the right, no tagline. Rasterized at 2× (2000×640) so they stay sharp on retina displays. | -| `favicon.svg` | Favicon / small tile. | -| `social-preview.png` | GitHub social preview (1280x640). Same two-column composition as the banner, with the domain under the lockup. Upload it per repository under Settings → Social preview; nothing does that for you. | -| `*.svg` | Source of truth. The wordmark uses Montserrat SemiBold; PNGs here are the reference renders. | - -The banner is 1000×320 rather than the 1280×320 it used to be. Taking the -tagline out left a 443px void between the lockup and the check-run panel — -six times the outer margins — so the canvas was narrowed to the content -instead of padding the middle. Keep that in mind before adding anything -back: the layout is sized to what is in it. - -None of these carry a tagline, and new ones should not either. A slogan baked -into a PNG cannot be reviewed in a diff, cannot be corrected without a machine -that has Montserrat installed, and goes stale silently — these read -"Clean commits. Clear standards." for a while after the rest of the org had -stopped saying it. The wordmark and the domain do not expire; the sentence belongs in the -prose next to the image, where changing it is a one-line diff. +| `avatar.png` | The org avatar, 1024×1024. Full-bleed Ink, because GitHub crops avatars itself. | +| `logo-mark.png` / `.svg` | The mark on its tile. | +| `logo.png` / `logo-dark.png` | The lockup for light / dark backgrounds, trimmed. | +| `banner-light.png` / `banner-dark.png` | READMEs. Pair them in a ``. Lockup on the left, a passing check run on the right, rendered at 2× (2000×640). | +| `social-preview.png` | The org-wide GitHub social preview (1280×640). | +| `social-preview-.png` | One per repository, with that repository's address and a panel showing what it does. | +| `favicon.svg` / `.png` | The small-size cut: at 16–32 px only the thickened tick remains. | +| `badge-logo.svg` | The logo inside the README badge (below). | -Reference the **PNGs** in READMEs, not the SVGs: GitHub proxies README images -through camo, which handles SVG unreliably — and the SVG text needs Montserrat -installed to render correctly. +Upload a social preview per repository under **Settings → Social preview**; +GitHub has no API for it, so nothing does that for you. + +## The README badge + +[![commit-check](https://img.shields.io/badge/commit--check-enabled-2c9ccd?labelColor=0b1620&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI%2bPHBhdGggZD0iTTIxIDM0TDMwIDQzTDQ3IDIyIiBmaWxsPSJub25lIiBzdHJva2U9IiMyQzlDQ0QiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8%2bPGNpcmNsZSBjeD0iMjEiIGN5PSIzNCIgcj0iNyIgZmlsbD0iIzBCMTYyMCIgc3Ryb2tlPSIjMkM5Q0NEIiBzdHJva2Utd2lkdGg9IjUiLz48L3N2Zz4K)](https://commit-check.com) -To re-render the banners (needs Montserrat SemiBold installed): +The `logo=` parameter is `badge-logo.svg`, base64-encoded, with `+` written as +`%2b` (a bare `+` in a query string is a space). Shields.io only takes a +Simple Icons slug or a data URI there, which is why the URL is long. + +## Re-rendering + +The images with text are HTML pages in `src/`, rendered with headless Chrome; +their fonts come from Google Fonts, so nothing has to be installed. The +shape-only SVGs are rendered with `rsvg-convert`. ```bash -rsvg-convert -w 2000 -h 640 -o banner-light.png banner-light.svg -rsvg-convert -w 2000 -h 640 -o banner-dark.png banner-dark.svg -rsvg-convert -w 1280 -h 640 -o social-preview.png social-preview.svg +branding/src/render.sh ``` -Different librsvg versions antialias glyph edges slightly differently, so a -re-render is a whole-image change even when you edited one line. To see what -you actually changed, render the file before and after with the *same* binary -and diff those two. +None of the images carry a tagline, and new ones should not either. A slogan +baked into a PNG cannot be reviewed in a diff and goes stale silently — v3's +read "Clean commits. Clear standards." for a while after the rest of the org +had stopped saying it. The wordmark, the domain and a repository's address do +not expire; the sentence belongs in the prose next to the image. + +Reference the **PNGs** in READMEs, not the SVGs: GitHub proxies README images +through camo, which handles SVG unreliably, and `logo.svg` keeps its wordmark +as live text that needs the display face to render as designed. ## Legacy files `logo.jpg` and `logo-small.jpg` predate this set and are kept only because -something outside this repository may still link to them. Neither is fit for -new use: `logo.jpg` is a PNG wearing a `.jpg` extension, and `logo-small.jpg` -is a real JPEG, so it has no transparency and renders as a white box on any -dark background. Remove them once you have confirmed nothing points at them. +something outside this repository may still link to them; they now carry the +v4 lockup. `logo.jpg` is a PNG wearing a `.jpg` extension, and +`logo-small.jpg` is a real JPEG on white. Remove them once you have confirmed +nothing points at them. diff --git a/branding/avatar.png b/branding/avatar.png index ebbed82..f71cc65 100644 Binary files a/branding/avatar.png and b/branding/avatar.png differ diff --git a/branding/avatar.svg b/branding/avatar.svg index a238538..6d7278f 100644 --- a/branding/avatar.svg +++ b/branding/avatar.svg @@ -1,4 +1,10 @@ - - - - \ No newline at end of file + + + + + + + + + diff --git a/branding/badge-logo.svg b/branding/badge-logo.svg new file mode 100644 index 0000000..7d016f0 --- /dev/null +++ b/branding/badge-logo.svg @@ -0,0 +1 @@ + diff --git a/branding/banner-dark.png b/branding/banner-dark.png index 07541c4..fadb4e8 100644 Binary files a/branding/banner-dark.png and b/branding/banner-dark.png differ diff --git a/branding/banner-dark.svg b/branding/banner-dark.svg deleted file mode 100644 index 8254f60..0000000 --- a/branding/banner-dark.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - COMMIT - - - ALL CHECKS PASSED - ✔messagefeat: add pagination - ✔branchfeat/pagination - ✔author-emaildev@example.com - ✔ai-attributionno AI trailers - - \ No newline at end of file diff --git a/branding/banner-light.png b/branding/banner-light.png index 96c432e..eb3c246 100644 Binary files a/branding/banner-light.png and b/branding/banner-light.png differ diff --git a/branding/banner-light.svg b/branding/banner-light.svg deleted file mode 100644 index 77fb360..0000000 --- a/branding/banner-light.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - COMMIT - - - ALL CHECKS PASSED - ✔messagefeat: add pagination - ✔branchfeat/pagination - ✔author-emaildev@example.com - ✔ai-attributionno AI trailers - - \ No newline at end of file diff --git a/branding/favicon.png b/branding/favicon.png index 30fb1d2..9987f8e 100644 Binary files a/branding/favicon.png and b/branding/favicon.png differ diff --git a/branding/favicon.svg b/branding/favicon.svg index abe139c..46a5f28 100644 --- a/branding/favicon.svg +++ b/branding/favicon.svg @@ -1,4 +1,6 @@ - - - - \ No newline at end of file + + + + + diff --git a/branding/logo-dark.png b/branding/logo-dark.png index bba1ee5..79f309e 100644 Binary files a/branding/logo-dark.png and b/branding/logo-dark.png differ diff --git a/branding/logo-dark.svg b/branding/logo-dark.svg index 16649e8..24cfe3a 100644 --- a/branding/logo-dark.svg +++ b/branding/logo-dark.svg @@ -1,4 +1,12 @@ - - - COMMIT - \ No newline at end of file + + + + + + + + Commit Check + diff --git a/branding/logo-mark.png b/branding/logo-mark.png index 2b58d2d..c8cc55b 100644 Binary files a/branding/logo-mark.png and b/branding/logo-mark.png differ diff --git a/branding/logo-mark.svg b/branding/logo-mark.svg index 1de3601..c5af948 100644 --- a/branding/logo-mark.svg +++ b/branding/logo-mark.svg @@ -1,3 +1,7 @@ - - - \ No newline at end of file + + + + + + + diff --git a/branding/logo-small.jpg b/branding/logo-small.jpg index cef0dd7..1b9d93b 100644 Binary files a/branding/logo-small.jpg and b/branding/logo-small.jpg differ diff --git a/branding/logo.jpg b/branding/logo.jpg index ed4cd72..171071a 100644 Binary files a/branding/logo.jpg and b/branding/logo.jpg differ diff --git a/branding/logo.png b/branding/logo.png index ff3ff9a..171071a 100644 Binary files a/branding/logo.png and b/branding/logo.png differ diff --git a/branding/logo.svg b/branding/logo.svg index 76e4065..e2ee538 100644 --- a/branding/logo.svg +++ b/branding/logo.svg @@ -1,4 +1,12 @@ - - - COMMIT - \ No newline at end of file + + + + + + + + Commit Check + diff --git a/branding/social-preview-commit-check-action.png b/branding/social-preview-commit-check-action.png new file mode 100644 index 0000000..0d05983 Binary files /dev/null and b/branding/social-preview-commit-check-action.png differ diff --git a/branding/social-preview-commit-check-app.png b/branding/social-preview-commit-check-app.png new file mode 100644 index 0000000..a1c3447 Binary files /dev/null and b/branding/social-preview-commit-check-app.png differ diff --git a/branding/social-preview-commit-check-mcp.png b/branding/social-preview-commit-check-mcp.png new file mode 100644 index 0000000..6ceee57 Binary files /dev/null and b/branding/social-preview-commit-check-mcp.png differ diff --git a/branding/social-preview-commit-check.png b/branding/social-preview-commit-check.png new file mode 100644 index 0000000..52b3c4e Binary files /dev/null and b/branding/social-preview-commit-check.png differ diff --git a/branding/social-preview.png b/branding/social-preview.png index 8f64d48..7709b63 100644 Binary files a/branding/social-preview.png and b/branding/social-preview.png differ diff --git a/branding/social-preview.svg b/branding/social-preview.svg deleted file mode 100644 index 409832f..0000000 --- a/branding/social-preview.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - COMMIT - - commit-check.com - - - ALL CHECKS PASSED - ✔messagefeat: add pagination - ✔branchfeat/pagination - ✔author-emaildev@example.com - ✔ai-attributionno AI trailers - - diff --git a/branding/src/banner.html b/branding/src/banner.html new file mode 100644 index 0000000..db848ee --- /dev/null +++ b/branding/src/banner.html @@ -0,0 +1,53 @@ + + + + + + + + + +
+
Commit Check
+
+
✔ All 4 checks passed
+
✔messagefeat: add login page
+
✔branchfeature/add-login
+
✔author-emailjane@acme.dev
+
✔ai-disclosureAssisted-by: Claude
+
+
+ + + + diff --git a/branding/src/brand.css b/branding/src/brand.css new file mode 100644 index 0000000..b99c246 --- /dev/null +++ b/branding/src/brand.css @@ -0,0 +1,36 @@ +/* Shared by the HTML sources in this folder. Fonts come from Google Fonts, + so rendering needs a network connection but nothing installed. */ +@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,700..800&family=Instrument+Sans:wght@400..700&family=JetBrains+Mono:wght@400;500;700&display=block"); + +:root { + --ink: #0b1620; + --ink-2: #13212c; + --ink-3: #0f1d28; + --ink-line: #22323f; + --blue: #2c9ccd; + --blue-soft: #7fc6e6; + --paper: #f4f6f7; + --on-ink: #e8eef2; + --on-ink-dim: #8fa3b1; + --pass: #4fc98b; + --fail: #ff7a6e; + --display: "Bricolage Grotesque", sans-serif; + --text: "Instrument Sans", sans-serif; + --mono: "JetBrains Mono", monospace; +} + +* { box-sizing: border-box; } +html, body { margin: 0; background: transparent; } +body { font-family: var(--text); -webkit-font-smoothing: antialiased; } +/* Transcripts must show `==>` as three characters, not a ligature arrow. */ +code, .mono { font-family: var(--mono); font-variant-ligatures: none; } + +.lockup { display: flex; align-items: center; } +.lockup svg { flex-shrink: 0; } +.wordmark { + font-family: var(--display); + font-weight: 700; + letter-spacing: -0.025em; + line-height: 1; + white-space: nowrap; +} diff --git a/branding/src/logo.html b/branding/src/logo.html new file mode 100644 index 0000000..bf63f96 --- /dev/null +++ b/branding/src/logo.html @@ -0,0 +1,25 @@ + + + + + + + + + +
Commit Check
+ + + + diff --git a/branding/src/mark.js b/branding/src/mark.js new file mode 100644 index 0000000..c0e8b91 --- /dev/null +++ b/branding/src/mark.js @@ -0,0 +1,10 @@ +// Writes the mark into every . +document.querySelectorAll("i.mark").forEach(function (el) { + var tile = el.dataset.tile || "#0B1620"; + el.outerHTML = + ''; +}); diff --git a/branding/src/render.sh b/branding/src/render.sh new file mode 100755 index 0000000..91af15a --- /dev/null +++ b/branding/src/render.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# Re-renders every PNG in branding/ from the sources in this folder. +# +# Needs Google Chrome (the HTML sources pull their fonts from Google Fonts, so +# nothing has to be installed), rsvg-convert for the shape-only SVGs, and +# ImageMagick to trim the lockups. Run from anywhere: +# +# branding/src/render.sh +set -euo pipefail + +src="$(cd "$(dirname "$0")" && pwd)" +out="$(dirname "$src")" +chrome="${CHROME:-/Applications/Google Chrome.app/Contents/MacOS/Google Chrome}" + +shot() { # url width height scale output + "$chrome" --headless=new --disable-gpu --hide-scrollbars \ + --default-background-color=00000000 --virtual-time-budget=10000 \ + --window-size="$2,$3" --force-device-scale-factor="$4" \ + --screenshot="$5" "file://$src/$1" >/dev/null 2>&1 +} + +# Shapes only: no fonts involved. +rsvg-convert -w 1024 -h 1024 "$out/avatar.svg" -o "$out/avatar.png" +rsvg-convert -w 512 -h 512 "$out/logo-mark.svg" -o "$out/logo-mark.png" +rsvg-convert -w 256 -h 256 "$out/favicon.svg" -o "$out/favicon.png" + +# The lockup, trimmed to its ink with an even margin. +for theme in light dark; do + name=logo; [ "$theme" = dark ] && name=logo-dark + shot "logo.html?theme=$theme" 1200 300 1 "$out/$name.png" + magick "$out/$name.png" -trim +repage -bordercolor none -border 24 "$out/$name.png" +done + +# Banners at 2x. +shot "banner.html?theme=light" 1000 320 2 "$out/banner-light.png" +shot "banner.html?theme=dark" 1000 320 2 "$out/banner-dark.png" + +# Social previews: the org-wide card, then one per repository. +shot "social.html" 1280 640 1 "$out/social-preview.png" +for repo in commit-check commit-check-action commit-check-app commit-check-mcp; do + shot "social.html?repo=$repo" 1280 640 1 "$out/social-preview-$repo.png" +done diff --git a/branding/src/social.html b/branding/src/social.html new file mode 100644 index 0000000..6e50815 --- /dev/null +++ b/branding/src/social.html @@ -0,0 +1,116 @@ + + + + + + + + + +
+ + +
+
Commit Check
+ commit-check.com + +
+ + +
+
✖ Fix: add streaming support
+
✔ fix: add streaming support
+
+
✖ my-new-thing
+
✔ feature/streaming-support
+
+ + +
+
$ echo "Fix: add login" | commit-check -m
+
CC001 message check failed ==>
+
Fix: add login
+
Suggest: Use "fix: add login"
+
Docs: commit-check.com/rules/#cc001
+
+ + +
+
Pull request comment
+
Commit Check
+
✔ All 5 checks passed
+
pr-commentsjob-summarypr-titlemessagebranch
+
+ + +
+
Commit Check · check runs
+
✔ d87faca feat: add login page
+
✔ 1f0c2aa fix: handle empty password
+
✔ 9b1e4c0 docs: explain the login flow
+
3 check runs, all passed
+
+ + +
+
validate_commit_message
+
{"message": "Fix: add login"}
+
+
"status": "fail",
+
"rule_id": "CC001",
+
"fix": "fix: add login"
+
+
+ + + + diff --git a/profile/README.md b/profile/README.md index 4b0a2c3..5d12c45 100644 --- a/profile/README.md +++ b/profile/README.md @@ -1,19 +1,19 @@
+ handles SVG unreliably. The sources are in branding/src/. --> Commit Check -One config file. Every place your team commits. +Catch bad commits before they merge — one config file, from your commit hook to every pull request. -[![PyPI](https://img.shields.io/pypi/v/commit-check?logo=pypi&logoColor=white&color=2c9ccd)](https://pypi.org/project/commit-check/) -[![Downloads](https://img.shields.io/pepy/dt/commit-check?color=2c9ccd)](https://pepy.tech/projects/commit-check) -[![Marketplace](https://img.shields.io/badge/Marketplace-commit--check--action-2c9ccd?logo=githubactions&logoColor=white)](https://github.com/marketplace/actions/commit-check-action) -[![License: MIT](https://img.shields.io/badge/License-MIT-2c9ccd.svg)](https://opensource.org/licenses/MIT) -[![Website](https://img.shields.io/badge/Website-commit--check.com-2c9ccd?logo=git&logoColor=white)](https://commit-check.com) +[![PyPI](https://img.shields.io/pypi/v/commit-check?labelColor=0b1620&logo=pypi&logoColor=white&color=2c9ccd)](https://pypi.org/project/commit-check/) +[![Downloads](https://img.shields.io/pepy/dt/commit-check?labelColor=0b1620&color=2c9ccd)](https://pepy.tech/projects/commit-check) +[![Marketplace](https://img.shields.io/badge/Marketplace-commit--check--action-2c9ccd?labelColor=0b1620&logo=githubactions&logoColor=white)](https://github.com/marketplace/actions/commit-check-action) +[![License: MIT](https://img.shields.io/badge/License-MIT-2c9ccd.svg?labelColor=0b1620)](https://opensource.org/licenses/MIT) +[![Website](https://img.shields.io/badge/Website-commit--check.com-2c9ccd?labelColor=0b1620&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI%2bPHBhdGggZD0iTTIxIDM0TDMwIDQzTDQ3IDIyIiBmaWxsPSJub25lIiBzdHJva2U9IiMyQzlDQ0QiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8%2bPGNpcmNsZSBjeD0iMjEiIGN5PSIzNCIgcj0iNyIgZmlsbD0iIzBCMTYyMCIgc3Ryb2tlPSIjMkM5Q0NEIiBzdHJva2Utd2lkdGg9IjUiLz48L3N2Zz4K)](https://commit-check.com)