Refresh the public catalog to match the live BOS desktop

Desktop / BOS lists ISO and core apps including breadhelp; bos-settings
is Tauri 2 + Svelte, not GTK4. breadcast is a bakery-only extra in Misc.
Tokens follow the fixed #0c0c0c / #1a1a1a base instead of Catppuccin mocha.

The site is curated; bakery SoT remains bread-ecosystem/registry/bread-ecosystem.toml.
This commit is contained in:
Breadway 2026-08-15 21:33:31 +08:00
parent 6fc834a27d
commit a6f840d52f
6 changed files with 50 additions and 27 deletions

View file

@ -1,6 +1,8 @@
# breadway.dev # breadway.dev
Personal portfolio site — built with [Zola](https://www.getzola.org/) and the Bread Design System. Curated public catalog of Breadway projects — built with [Zola](https://www.getzola.org/) and the Bread Design System (fixed BOS dark base, pywal accents).
This site is **curated**, not a dump of every bakery product. The bakery source of truth is `bread-ecosystem/registry/bread-ecosystem.toml`.
## Developing ## Developing

View file

@ -1,5 +1,5 @@
[[category]] [[category]]
name = "Bread Desktop Ecosystem" name = "Desktop / BOS"
[[category.project]] [[category.project]]
name = "bos" name = "bos"
@ -14,10 +14,18 @@ flagship = true
name = "bos-settings" name = "bos-settings"
role = "settings app" role = "settings app"
lang = "rust" lang = "rust"
description = "GTK4 system settings app for BOS — configures every bread app plus core system settings." description = "System settings for BOS — Tauri 2 + Svelte app that configures every bread app plus core system settings."
tags = ["GTK4"] tags = ["Tauri 2", "Svelte"]
source = "https://git.breadway.dev/Breadway/bos-settings" source = "https://git.breadway.dev/Breadway/bos-settings"
[[category.project]]
name = "breadhelp"
role = "onboarding"
lang = "rust"
description = "Onboarding and help center for BOS — searchable guides, keybind viewer, troubleshooting wizard, and a live tour of the desktop apps. Bakery-distributed and shipped on the ISO."
tags = ["GTK4"]
source = "https://git.breadway.dev/Breadway/breadhelp"
[[category.project]] [[category.project]]
name = "bread" name = "bread"
role = "daemon" role = "daemon"
@ -146,6 +154,14 @@ source = "https://github.com/Breadway/vial-qmk"
[[category]] [[category]]
name = "Misc & Utilities" name = "Misc & Utilities"
[[category.project]]
name = "breadcast"
role = "screen cast"
lang = "rust"
description = "Screen cast to Chromecast/Google TV or DLNA — bakery product, not shipped on BOS."
tags = ["GTK4"]
source = "https://git.breadway.dev/Breadway/breadcast"
[[category.project]] [[category.project]]
name = "mathspace-dark-mode" name = "mathspace-dark-mode"
role = "extension" role = "extension"

View file

@ -3,7 +3,7 @@ html {
background-image: background-image:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E"),
radial-gradient(680px 380px at 15% -120px, var(--bg-glow), transparent 65%), radial-gradient(680px 380px at 15% -120px, var(--bg-glow), transparent 65%),
radial-gradient(520px 320px at 100% 0%, rgba(250, 179, 135, 0.08), transparent 60%); radial-gradient(520px 320px at 100% 0%, rgba(234, 182, 114, 0.08), transparent 60%);
background-blend-mode: overlay, normal, normal; background-blend-mode: overlay, normal, normal;
background-attachment: fixed; background-attachment: fixed;
} }
@ -86,7 +86,7 @@ body {
.feature-card { .feature-card {
padding: var(--space-lg); padding: var(--space-lg);
background: rgba(24, 24, 37, 0.72); background: rgba(26, 26, 26, 0.72);
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
border: 1px solid var(--border); border: 1px solid var(--border);
@ -117,8 +117,8 @@ body {
.group:nth-of-type(4) { animation-delay: 240ms; } .group:nth-of-type(4) { animation-delay: 240ms; }
.cat-ecosystem { --cat-color: var(--accent); } .cat-ecosystem { --cat-color: var(--accent); }
.cat-hardware { --cat-color: #74c7ec; } .cat-hardware { --cat-color: var(--green); }
.cat-misc { --cat-color: #a6e3a1; } .cat-misc { --cat-color: var(--yellow); }
.group-head { .group-head {
position: relative; position: relative;
@ -176,7 +176,7 @@ body {
.entry { .entry {
position: relative; position: relative;
padding: var(--space-lg); padding: var(--space-lg);
background: rgba(24, 24, 37, 0.72); background: rgba(26, 26, 26, 0.72);
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
border: 1px solid var(--border); border: 1px solid var(--border);
@ -189,7 +189,7 @@ body {
.entry:hover { .entry:hover {
border-color: var(--border); border-color: var(--border);
border-left-color: var(--cat-color, var(--accent)); border-left-color: var(--cat-color, var(--accent));
background: rgba(36, 36, 58, 0.78); background: rgba(34, 34, 34, 0.78);
box-shadow: var(--shadow-hover); box-shadow: var(--shadow-hover);
} }

View file

@ -1,15 +1,20 @@
/* Fixed BOS dark base + curated bread-toned accent (pywal color4 default).
See bread-ecosystem/BREAD_DESIGN_SYSTEM.md not Catppuccin. */
:root { :root {
--bg: #1e1e2e; --bg: #0c0c0c;
--bg-glow: #2a2440; --bg-glow: #1a1a1a;
--fg: #cdd6f4; --fg: #e8e8e8;
--surface: #181825; --surface: #1a1a1a;
--surface-2: #24243a; --surface-2: #222222;
--surface-3: #2e2e46; --surface-3: #2a2a2a;
--accent: #fab387; --overlay: #d8d8d8;
--accent-dim: rgba(250, 179, 135, 0.12); --accent: #eab672;
--accent-line: rgba(250, 179, 135, 0.28); --accent-dim: rgba(234, 182, 114, 0.12);
--muted: #9399b2; --accent-line: rgba(234, 182, 114, 0.28);
--border: #313147; --green: #cd9450;
--yellow: #e3a85c;
--muted: #d8d8d8;
--border: #2a2a2a;
--font-sans: "Varela Round", sans-serif; --font-sans: "Varela Round", sans-serif;
--font-mono: "JetBrains Mono", ui-monospace, monospace; --font-mono: "JetBrains Mono", ui-monospace, monospace;
@ -26,5 +31,5 @@
--radius-pill: 999px; --radius-pill: 999px;
--shadow-ambient: 0 1px 2px rgba(0, 0, 0, 0.24); --shadow-ambient: 0 1px 2px rgba(0, 0, 0, 0.24);
--shadow-hover: 0 12px 28px -10px rgba(250, 179, 135, 0.28); --shadow-hover: 0 12px 28px -10px rgba(234, 182, 114, 0.28);
} }

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<rect width="32" height="32" rx="7" fill="#181825"/> <rect width="32" height="32" rx="7" fill="#1a1a1a"/>
<text x="16" y="23" font-family="monospace" font-weight="700" font-size="20" fill="#fab387" text-anchor="middle">b</text> <text x="16" y="23" font-family="monospace" font-weight="700" font-size="20" fill="#eab672" text-anchor="middle">b</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 247 B

Before After
Before After

View file

@ -22,7 +22,7 @@
</svg> </svg>
<h1>Breadway</h1> <h1>Breadway</h1>
</div> </div>
<p class="tagline">Personal projects — mostly Rust tooling for a Hyprland desktop, plus whatever else comes up.</p> <p class="tagline">Curated catalog of BOS desktop tools and other personal projects — not the bakery registry.</p>
<p class="stats"><strong>{{ total }}</strong> projects across <strong>{{ data.category | length }}</strong> categories</p> <p class="stats"><strong>{{ total }}</strong> projects across <strong>{{ data.category | length }}</strong> categories</p>
</header> </header>
@ -43,12 +43,12 @@
<main> <main>
{% for category in data.category %} {% for category in data.category %}
{% if category.name == "Bread Desktop Ecosystem" %}{% set cat_class = "cat-ecosystem" %} {% if category.name == "Desktop / BOS" %}{% set cat_class = "cat-ecosystem" %}
{% elif category.name == "Hardware & Firmware" %}{% set cat_class = "cat-hardware" %} {% elif category.name == "Hardware & Firmware" %}{% set cat_class = "cat-hardware" %}
{% else %}{% set cat_class = "cat-misc" %}{% endif %} {% else %}{% set cat_class = "cat-misc" %}{% endif %}
<section class="group {{ cat_class }}"> <section class="group {{ cat_class }}">
<div class="group-head"> <div class="group-head">
{% if category.name == "Bread Desktop Ecosystem" %} {% if category.name == "Desktop / BOS" %}
<svg class="group-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <svg class="group-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<polyline points="4 17 10 11 4 5"></polyline> <polyline points="4 17 10 11 4 5"></polyline>
<line x1="12" y1="19" x2="20" y2="19"></line> <line x1="12" y1="19" x2="20" y2="19"></line>