ajhahn.de
← the-way-out commits

Commit

the-way-out

docs: adopt the house design system — exit-green wordmark, flat-square badges

Split the wordmark into a neutral "THE WAY " and an exit-green "OUT"
(emerald mid #10B981 on light, bright #34D399 on dark), restyle the
README badges to the shared flat-square recipe (accent version badge,
lightgrey facts), add the missing logo header to VERSIONING.md, add
one-line taglines under each subpage heading, and end the nav ring on
the Changelog with a prev-only footer.

ajhahnde · Jun 2026 · 8a91af30b5e4ea5544becec2bf8408a0ea0f86ee · parent: 2db4231 · view on GitHub →

modified CHANGELOG.md
@@ -6,6 +6,8 @@
<h1>Changelog</h1>
<p><i>All notable changes to The Way Out, release by release.</i></p>
<p>
<a href="README.md"><b>README</b></a> ·
<a href="DOCUMENTATION.md"><b>Documentation</b></a> ·
@@ -719,4 +721,4 @@ Initial release.
---
[← Prev: Versioning](VERSIONING.md) · [Back to start (README) ↺](README.md)
[← Prev: Versioning](VERSIONING.md)
modified DOCUMENTATION.md
@@ -6,6 +6,8 @@
<h1>Documentation</h1>
<p><i>How the game loop, levels, characters, interactables, editor, save file, and self-updater fit together.</i></p>
<p>
<a href="README.md"><b>README</b></a> ·
<b>Documentation</b> ·
modified README.md
@@ -8,11 +8,11 @@
<h3>A top-down pixel-art escape-room shooter.</h3>
<p>
<a href="https://github.com/ajhahnde/the-way-out/actions/workflows/ci.yml"><img src="https://github.com/ajhahnde/the-way-out/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI"></a>
<img src="https://img.shields.io/badge/version-v1.0.5-blue" alt="Version">
<img src="https://img.shields.io/badge/license-Apache%202.0-green" alt="License">
<img src="https://img.shields.io/badge/python-3.12+-orange" alt="Python 3.12+">
<img src="https://img.shields.io/badge/target-macOS-lightgrey" alt="macOS">
<a href="https://github.com/ajhahnde/the-way-out/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/ajhahnde/the-way-out/ci.yml?branch=main&style=flat-square&label=ci" alt="CI"></a>
<img src="https://img.shields.io/badge/version-v1.0.5-10b981?style=flat-square" alt="Version">
<img src="https://img.shields.io/badge/python-3.12+-lightgrey?style=flat-square" alt="Python 3.12+">
<img src="https://img.shields.io/badge/target-macOS-lightgrey?style=flat-square" alt="macOS">
<img src="https://img.shields.io/badge/license-Apache--2.0-lightgrey?style=flat-square" alt="License">
</p>
<p>
modified VERSIONING.md
@@ -1,7 +1,13 @@
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/logo_dark.png">
<img src="assets/logo_light.png" alt="The Way Out" width="280">
</picture>
<h1>Versioning Policy</h1>
<p><i>The contract for how The Way Out is versioned, released, supported, and retired.</i></p>
<p>
<a href="README.md"><b>README</b></a> ·
<a href="DOCUMENTATION.md"><b>Documentation</b></a> ·
modified assets/logo_dark.png
binary file — no preview
modified assets/logo_light.png
binary file — no preview
modified scripts/render_logo.swift
@@ -1,35 +1,44 @@
import AppKit
import Foundation
/// Renders the project logo using the Orbitron font.
/// Renders the project logo using the Orbitron font: neutral "THE WAY " in
/// the theme ink, accent "OUT" in the exit green (emerald — mid #10B981 on
/// light backgrounds, bright #34D399 on dark).
/// Usage: swift scripts/render_logo.swift
let text = "THE WAY OUT"
let fontName = "Orbitron"
let fontSize: CGFloat = 160
let kern = 8.0
let padding: CGFloat = 40
func render(color: NSColor, filename: String) {
func color(_ hex: UInt32) -> NSColor {
NSColor(srgbRed: CGFloat((hex >> 16) & 0xff) / 255.0,
green: CGFloat((hex >> 8) & 0xff) / 255.0,
blue: CGFloat(hex & 0xff) / 255.0,
alpha: 1.0)
}
func render(neutral: NSColor, accent: NSColor, filename: String) {
guard let font = NSFont(name: fontName, size: fontSize) else {
print("Error: Font '\(fontName)' not found. Please install it first.")
exit(1)
}
let attributes: [NSAttributedString.Key: Any] = [
.font: font,
.foregroundColor: color,
.kern: kern
]
let attributedString = NSMutableAttributedString()
attributedString.append(NSAttributedString(
string: "THE WAY ",
attributes: [.font: font, .foregroundColor: neutral, .kern: kern]))
attributedString.append(NSAttributedString(
string: "OUT",
attributes: [.font: font, .foregroundColor: accent, .kern: kern]))
let attributedString = NSAttributedString(string: text, attributes: attributes)
let textSize = attributedString.size()
let imageSize = NSSize(width: textSize.width + padding * 2, height: textSize.height + padding * 2)
let image = NSImage(size: imageSize)
image.lockFocus()
// Draw text with optical centering adjustment if needed,
// Draw text with optical centering adjustment if needed,
// but here we just use the padding.
attributedString.draw(at: NSPoint(x: padding, y: padding))
@@ -51,8 +60,8 @@ func render(color: NSColor, filename: String) {
}
}
// Generate light mode logo (Atom One Light foreground #383a42)
render(color: NSColor(srgbRed: 56.0/255.0, green: 58.0/255.0, blue: 66.0/255.0, alpha: 1.0), filename: "logo_light.png")
// Light mode: ink #1a1a1a + emerald mid #10B981
render(neutral: color(0x1a1a1a), accent: color(0x10B981), filename: "logo_light.png")
// Generate dark mode logo (white text)
render(color: .white, filename: "logo_dark.png")
// Dark mode: ink #f5f5f5 + emerald bright #34D399
render(neutral: color(0xf5f5f5), accent: color(0x34D399), filename: "logo_dark.png")