Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
435ebf6
Add AGENTS.md
criccomini May 5, 2026
454dd3b
feat: refresh FizzBee website design
criccomini May 5, 2026
323b0fb
fix: point header brand link to root
criccomini May 5, 2026
c369062
fix: remove homepage eyebrow labels
criccomini May 5, 2026
48d6ed7
fix: shorten homepage hero slot
criccomini May 5, 2026
eb56afd
fix: rename formal methods section heading
criccomini May 5, 2026
cd9c54f
fix: make secondary CTA border visible
criccomini May 5, 2026
fc69ad8
fix: cap homepage hero height
criccomini May 5, 2026
897e3de
fix: align homepage hero with header
criccomini May 5, 2026
e1b039a
fix: tighten workflow strip under hero
criccomini May 5, 2026
48a1691
fix: move playground CTA into workbench
criccomini May 5, 2026
81e3a61
fix: remove workbench window controls
criccomini May 5, 2026
43910d3
fix: colorize homepage workflow panels
criccomini May 5, 2026
d2e4817
fix: loosen hero lead spacing
criccomini May 5, 2026
6deee10
fix: widen docs content gutter
criccomini May 5, 2026
53709ee
fix: shorten breadcrumb root label
criccomini May 5, 2026
df95e3d
fix: update landing workbench preview
criccomini May 5, 2026
f952449
fix: restore full homepage testimonials
criccomini May 5, 2026
de82c03
fix: expand homepage workflow strip
criccomini May 5, 2026
c7ef407
fix: remove mobile homepage left gap
criccomini May 5, 2026
7687738
fix: make playground CTA clickable
criccomini May 5, 2026
baccf12
feat: expand homepage workflow sections
criccomini May 5, 2026
269665c
style: darken homepage hero and header
criccomini May 5, 2026
bd08a57
fix: remove homepage workflow strip
criccomini May 5, 2026
3eb1e37
style: fade homepage artifact windows
criccomini May 5, 2026
d0457cf
fix: simplify header navigation
criccomini May 5, 2026
51effb0
style: match workbench playground CTA
criccomini May 5, 2026
3ffa105
style: align homepage codebox widths
criccomini May 5, 2026
826b22f
style: replace site footer navigation
criccomini May 5, 2026
f34db44
fix: remove docs more navigation
criccomini May 5, 2026
226e3ac
style: add homepage hero state visual
criccomini May 5, 2026
a4b1731
style: move model playground link
criccomini May 5, 2026
d1d5342
style: remove header playground link
criccomini May 5, 2026
397935a
style: improve footer layout
criccomini May 5, 2026
f3807ad
style: improve landing page action links
criccomini May 5, 2026
3c58f7e
style: add footer quickstart and playground links
criccomini May 5, 2026
f6a1256
style: remove docs nav heading
criccomini May 5, 2026
901846b
style: replace homepage hero visual
criccomini May 5, 2026
8e18653
style: restore landing CTA borders
criccomini May 5, 2026
937c775
style: simplify footer navigation
criccomini May 5, 2026
6e25537
style: remove homepage CTA arrows
criccomini May 5, 2026
aa23e79
content: update footer link labels
criccomini May 5, 2026
866b614
style: abstract hero state visual
criccomini May 5, 2026
a9f866c
content: mention all test adapters
criccomini May 5, 2026
4c807bb
style: split footer links into columns
criccomini May 5, 2026
d79ad42
style: use up arrow in footer
criccomini May 5, 2026
1ee4790
style: align homepage content with header mark
criccomini May 5, 2026
21e1e84
style: switch accent color to honey
criccomini May 5, 2026
cc9e78d
style: keep search input white
criccomini May 5, 2026
27f6688
style: brighten docs link color
criccomini May 5, 2026
6eff3f9
style: redraw hero bee as SVG
criccomini May 5, 2026
68298ba
style: enlarge mobile home icon
criccomini May 5, 2026
a219bf9
style: make homepage final cta full bleed
criccomini May 5, 2026
da460aa
feat: add install commands to homepage cta
criccomini May 5, 2026
8df64e2
copy: update homepage install cta
criccomini May 5, 2026
27b252b
copy: update homepage install heading
criccomini May 5, 2026
6691883
copy: update homepage cta heading
criccomini May 5, 2026
0af13e1
copy: shorten homepage cta homebrew text
criccomini May 5, 2026
85aa4cf
copy: reword homepage hero lead
criccomini May 5, 2026
7c78cec
copy: update hero verification copy
criccomini May 5, 2026
b833f65
copy: update hero modeling language text
criccomini May 5, 2026
443e0ae
copy: update homepage hero headline
criccomini May 5, 2026
046ab67
copy: update hero design specs text
criccomini May 5, 2026
43b9578
copy: tighten hero verification sentence
criccomini May 5, 2026
744b627
copy: update hero ai design text
criccomini May 5, 2026
0aa2b7f
copy: update hero pythonic wording
criccomini May 5, 2026
f2b63e6
copy: fix hero design verification wording
criccomini May 5, 2026
4b7f47e
copy: update model section starlark copy
criccomini May 5, 2026
e7d52bf
copy: update verify section result text
criccomini May 5, 2026
0a02696
copy: link bazel in starlark section
criccomini May 5, 2026
b3f2e47
copy: update verify section heading
criccomini May 5, 2026
c15d1c3
copy: update visualize section heading
criccomini May 5, 2026
0321e18
copy: update test section heading
criccomini May 5, 2026
0fb5d1e
style: remove state graph transition labels
criccomini May 5, 2026
f504460
copy: update test exploration wording
criccomini May 5, 2026
990aa21
copy: update test harness section heading
criccomini May 5, 2026
16dadae
copy: shorten visualize section heading
criccomini May 5, 2026
9c28690
copy: revise homepage workflow headings
criccomini May 5, 2026
3313835
copy: shorten visualize heading
criccomini May 5, 2026
c10d679
copy: update test harness section copy
criccomini May 5, 2026
b609a2f
copy: update homepage hero headline
criccomini May 5, 2026
cfdeef1
copy: update homepage hero lead
criccomini May 5, 2026
b49c856
hero update
criccomini May 5, 2026
62e5964
perf: defer noncritical page resources
criccomini May 5, 2026
cad7a4b
fix: stabilize mobile header menu height
criccomini May 5, 2026
55f95de
fix: align blog styling with site theme
criccomini May 5, 2026
65412ca
fix: hide mobile docs nav divider
criccomini May 5, 2026
7a6bbc0
fix: remove mobile docs drawer divider
criccomini May 5, 2026
76639ed
fix: align docs heading anchors
criccomini May 5, 2026
5d534e4
fix: show mobile header bee icon
criccomini May 5, 2026
159f07f
fix: load snippets in playground links
criccomini May 5, 2026
bc507be
fix: preserve footer gutters
criccomini May 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Commit after each change.
- Use conventional commit syntax. Include a pargraph in the commit message dsecribing in detail what you did.
- Always use Playwright to check your changes.
365 changes: 267 additions & 98 deletions content/_index.md

Large diffs are not rendered by default.

12 changes: 0 additions & 12 deletions data/menu/more.yaml

This file was deleted.

1 change: 1 addition & 0 deletions hugo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ enableRobotsTXT = true
geekdocLogo = "bee-left-to-right-512x512.png"
geekdocPrivacyPolicy = "/privacy.html"
geekdocTagsToMenu = false
geekdocDarkModeToggle = false

# Needed for mermaid shortcodes
[markup]
Expand Down
5 changes: 5 additions & 0 deletions layouts/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{{ define "main" }}
<article class="gdoc-markdown gdoc-markdown__align--left fb-home-article">
{{ partial "utils/content" . }}
</article>
{{ end }}
33 changes: 0 additions & 33 deletions layouts/partials/consent.html
Original file line number Diff line number Diff line change
@@ -1,36 +1,3 @@
<style>
.cookie-consent-banner {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
background-color: #f8f9fa;
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
color: black;
padding: 15px;
font-size: 14px;
text-align: center;
z-index: 1000;
}
#btn-customize {
position: absolute;
left: -9999px;
}
#consent-options {
display: none;
margin: 10px 0 0 35px;
}

#btn-customize:checked ~ #consent-options {
display: block;
}
.customize-link {
color: -webkit-link;
cursor: pointer;
text-decoration: underline;
}
</style>
<div id="cookie-consent-banner" class="cookie-consent-banner">
<h3>Cookie settings</h3>
<p>
Expand Down
134 changes: 101 additions & 33 deletions layouts/partials/head/custom.html
Original file line number Diff line number Diff line change
@@ -1,38 +1,106 @@
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&family=JetBrains+Mono&display=swap" rel="stylesheet">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://www.googletagmanager.com">
<link rel="dns-prefetch" href="//www.google-analytics.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">

<script>
(function() {
function playgroundTarget(id, playUrl) {
return playUrl || ('/play#embed-' + id);
}

<!-- Google tag (gtag.js) -->
window.fizzbeeOpenPlayground = function(event, id, content, playUrl) {
if (event) {
event.preventDefault();
}

<script async src="https://www.googletagmanager.com/gtag/js?id=G-NJLJ97K6Q9"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

if(localStorage.getItem('consentMode') === null){
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'functionality_storage': 'denied',
'personalization_storage': 'denied',
'security_storage': 'denied',
});
} else {
gtag('consent', 'default', JSON.parse(localStorage.getItem('consentMode')));
}

gtag('js', new Date());

// gtag('config', 'G-NJLJ97K6Q9');
gtag('config', 'GTM-5MZ732X7');
try {
sessionStorage.setItem('fizzbee-embed-' + id, content);
} catch (error) {
console.error('Unable to save playground snippet.', error);
}

window.open(playgroundTarget(id, playUrl), '_blank');
return false;
};

window.fizzbeeOpenPlaygroundFromElement = function(event, id, codeElementId, playUrl) {
var codeElement = document.getElementById(codeElementId);
var content = codeElement ? codeElement.textContent : '';
return window.fizzbeeOpenPlayground(event, id, content, playUrl);
};
})();
</script>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5MZ732X7');</script>
<!-- End Google Tag Manager -->

<script>
(function() {
window.dataLayer = window.dataLayer || [];
window.gtag = window.gtag || function gtag(){dataLayer.push(arguments);}

if(localStorage.getItem('consentMode') === null){
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'functionality_storage': 'denied',
'personalization_storage': 'denied',
'security_storage': 'denied',
});
} else {
gtag('consent', 'default', JSON.parse(localStorage.getItem('consentMode')));
}

function loadScript(src) {
var script = document.createElement('script');
script.async = true;
script.src = src;
document.head.appendChild(script);
}

function loadGoogleTagManager(w,d,s,l,i) {
w[l]=w[l]||[];
w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),
dl=l!='dataLayer'?'&l='+l:'';
j.async=true;
j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
f.parentNode.insertBefore(j,f);
}

function loadAnalytics() {
if (loadAnalytics.loaded) {
return;
}
loadAnalytics.loaded = true;

loadScript('https://www.googletagmanager.com/gtag/js?id=G-NJLJ97K6Q9');
gtag('js', new Date());
// gtag('config', 'G-NJLJ97K6Q9');
gtag('config', 'GTM-5MZ732X7');
loadGoogleTagManager(window,document,'script','dataLayer','GTM-5MZ732X7');
}

function scheduleAnalytics() {
setTimeout(function() {
if ('requestIdleCallback' in window) {
requestIdleCallback(loadAnalytics, { timeout: 4000 });
} else {
loadAnalytics();
}
}, 30000);
}

window.addEventListener('pointerdown', loadAnalytics, { once: true, passive: true });
window.addEventListener('keydown', loadAnalytics, { once: true });

if (document.readyState === 'complete') {
scheduleAnalytics();
} else {
window.addEventListener('load', scheduleAnalytics, { once: true });
}
})();
</script>
41 changes: 41 additions & 0 deletions layouts/partials/menu.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<nav>
{{ partial "search" . }}

<section class="gdoc-nav--main">
{{ if .Site.Params.geekdocMenuBundle }}
{{ partial "menu-bundle" (dict "current" . "source" .Site.Data.menu.main.main) }}
{{ else }}
{{ partial "menu-filetree" . }}
{{ end }}
</section>

{{ if and (in (slice "posts" "tags") .Section) (default false .Site.Params.geekdocTagsToMenu) }}
<section class="gdoc-nav--tags">
<h2>{{ i18n "nav_tags" }}</h2>
<ul class="gdoc-nav__list">
{{ $currentPage := .RelPermalink }}
{{ range $name, $taxonomy := .Site.Taxonomies.tags }}
{{ with $.Site.GetPage (printf "/tags/%s" $name) }}
<li>
<a
class="gdoc-nav__entry{{- if eq $currentPage .RelPermalink }}
{{- printf " is-active" }}
{{- end }}"
href="{{ .RelPermalink }}"
>
{{ partial "utils/title" . }}
</a>
</li>
{{ end }}
{{ end }}
</ul>
</section>
{{ end }}

{{ with .Site.Data.menu.more.more }}
<section class="gdoc-nav--more">
<h2>{{ i18n "nav_more" }}</h2>
{{ partial "menu-bundle" (dict "current" $ "source" .) }}
</section>
{{ end }}
</nav>
64 changes: 21 additions & 43 deletions layouts/partials/site-footer.html
Original file line number Diff line number Diff line change
@@ -1,46 +1,24 @@
<footer class="gdoc-footer">
<nav class="container flex">
<div>
<section class="flex flex-wrap align-center">
<span class="gdoc-footer__item gdoc-footer__item--row">
{{ i18n "footer_build_with" | safeHTML }}
</span>
{{ with .Site.Params.geekdocLegalNotice }}
<span class="gdoc-footer__item gdoc-footer__item--row">
<a href="{{ . | relURL }}" class="gdoc-footer__link">
{{ i18n "footer_legal_notice" }}
</a>
</span>
{{ end }}
{{ with .Site.Params.geekdocPrivacyPolicy }}
<span class="gdoc-footer__item gdoc-footer__item--row">
<a href="{{ . | relURL }}" class="gdoc-footer__link">
{{ i18n "footer_privacy_policy" }}
</a>
</span>
{{ end }}
</section>
{{ with .Site.Params.geekdocContentLicense }}
<section class="flex flex-wrap align-center">
<span class="gdoc-footer__item">
{{ i18n "footer_content_license_prefix" }}
<a href="{{ .link }}" class="gdoc-footer__link no-wrap">{{ .name }}</a>
</span>
</section>
{{ end }}
<footer class="gdoc-footer fb-site-footer">
<div class="container fb-footer-shell">
<div class="fb-footer-brand-block">
<a class="fb-footer-brand" href="{{ "/" | relURL }}">FizzBee</a>
<p>Model, verify, visualize, and test distributed systems.</p>
</div>
{{ if (default true .Site.Params.geekdocBackToTop) }}
<div class="flex flex-25 justify-end">
<span class="gdoc-footer__item text-right">
<a class="gdoc-footer__link fake-link" href="#" aria-label="{{ i18n "nav_top" }}">
<svg class="gdoc-icon gdoc_keyboard_arrow_up">
<use xlink:href="#gdoc_keyboard_arrow_up"></use>
</svg>
<span class="hidden-mobile">{{ i18n "nav_top" }}</span>
</a>
</span>
<nav class="fb-footer-nav" aria-label="Footer navigation">
<div class="fb-footer-link-columns">
<div class="fb-footer-link-column">
<a class="gdoc-footer__link fb-footer-link" href="{{ "/design/tutorials/quick-start/" | relURL }}">Quickstart</a>
<a class="gdoc-footer__link fb-footer-link" href="{{ "/design/" | relURL }}">Design verification</a>
<a class="gdoc-footer__link fb-footer-link" href="{{ "/testing/" | relURL }}">Model-based testing</a>
</div>
<div class="fb-footer-link-column">
<a class="gdoc-footer__link fb-footer-link" href="{{ "/play" | relURL }}">Playground</a>
<a class="gdoc-footer__link fb-footer-link" href="{{ "/posts/" | relURL }}">Blog</a>
<a class="gdoc-footer__link fb-footer-link" href="{{ "/privacy.html" | relURL }}">Privacy policy</a>
</div>
</div>
{{ end }}
{{ partial "consent" . }}
</nav>
<a class="gdoc-footer__link fb-footer-link fb-footer-link--top" href="#">{{ i18n "nav_top" }}</a>
</nav>
</div>
{{ partial "consent" . }}
</footer>
66 changes: 66 additions & 0 deletions layouts/partials/site-header.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<header class="gdoc-header">
<div class="container flex align-center justify-between">
{{ if .MenuEnabled }}
<label for="menu-control" class="gdoc-nav__control" tabindex="0">
<svg class="gdoc-icon gdoc_menu">
<title>{{ i18n "button_nav_open" }}</title>
<use xlink:href="#gdoc_menu"></use>
</svg>
<svg class="gdoc-icon gdoc_arrow_back">
<title>{{ i18n "button_nav_close" }}</title>
<use xlink:href="#gdoc_arrow_back"></use>
</svg>
</label>
{{ end }}

<div>
<a class="gdoc-brand gdoc-header__link" href="/">
<span class="flex align-center">
<img
class="gdoc-brand__img"
src="{{ (default "brand.svg" .Root.Site.Params.geekdocLogo) | relURL }}"
width="42"
height="42"
decoding="async"
alt=""
/>
<span class="gdoc-brand__title">{{ .Root.Site.Title }}</span>
</span>
</a>
</div>

<div class="gdoc-menu-header">
<span class="gdoc-menu-header__items">
{{ if .Root.Site.Data.menu.extra.header }}
{{ partial "menu-extra" (dict "current" .Root "source" .Root.Site.Data.menu.extra.header "target" "header") }}
{{ end }}

<span class="gdoc-menu-header__home">
<a href="{{ .Root.Site.Home.Permalink }}" class="gdoc-header__link">
<svg class="gdoc-icon gdoc_home">
<title>{{ i18n "button_homepage" }}</title>
<use xlink:href="#gdoc_home"></use>
</svg>
</a>
</span>

{{ partial "language" .Root }}

<span class="gdoc-menu-header__control">
<label for="menu-header-control">
<svg class="gdoc-icon gdoc_keyboard_arrow_right">
<use xlink:href="#gdoc_keyboard_arrow_right"></use>
<title>{{ i18n "button_menu_close" }}</title>
</svg>
</label>
</span>
</span>
<label for="menu-header-control" class="gdoc-menu-header__control">
<svg class="gdoc-icon gdoc_keyboard_arrow_left">
<use xlink:href="#gdoc_keyboard_arrow_left"></use>
<title>{{ i18n "button_menu_open" }}</title>
</svg>
</label>
</div>
</div>
</header>
Loading