move to top banner

This commit is contained in:
2026-10-05 06:13:52 -06:00
parent e11be8261f
commit 34f0b499fa
70 changed files with 13429 additions and 36197 deletions
+38 -74
View File
@@ -1,15 +1,47 @@
{{/*
The rail: logo, the site's pages ("doors"), the two account actions, and
an index of the sections on this page. Sticky beside the column on wide
screens; a one-line bar with a Menu toggle below 1000px.
The top bar: logo, the site's pages (with dropdown panels for menus that
set `dropdown`), and the two account actions. Sticky on every screen;
below 1000px the pages fold into a Menu toggle (a <details>, so it works
without JS).
*/}}
{{ $page := . }}
<aside class="rail">
<div class="rail-bar">
<header class="site-head">
<div class="wrap head-bar">
<a href="{{ "/" | relURL }}" class="brand" aria-label="Federated Computer, home">
<img src="{{ "images/logo.png" | relURL }}" alt="Federated Computer" class="brand-logo" width="775" height="129">
</a>
<nav class="head-nav" aria-label="Site">
{{ range .Site.Menus.main }}
{{ if ne .URL "/" }}
{{ $m := . }}
{{ $active := hasPrefix $page.RelPermalink .URL }}
{{ with .Params.dropdown }}
<div class="nav-item has-drop">
<a href="{{ $m.URL | relURL }}" class="nav-link"{{ if $active }} aria-current="page"{{ end }}>{{ $m.Name }}<svg class="nav-caret" viewBox="0 0 10 6" width="10" height="6" aria-hidden="true"><path d="M1 1l4 4 4-4" fill="none" stroke="currentColor" stroke-width="1.5"/></svg></a>
<div class="drop">
<div class="drop-panel">
{{ range index $page.Site.Menus . }}
<a href="{{ .URL | relURL }}" class="drop-link"{{ if eq $page.RelPermalink .URL }} aria-current="page"{{ end }}>
<span class="drop-name">{{ .Name }}</span>
{{ with .Params.desc }}<span class="drop-desc">{{ . }}</span>{{ end }}
</a>
{{ end }}
</div>
</div>
</div>
{{ else }}
<a href="{{ $m.URL | relURL }}" class="nav-link"{{ if $active }} aria-current="page"{{ end }}>{{ $m.Name }}</a>
{{ end }}
{{ end }}
{{ end }}
</nav>
<div class="head-actions">
<a href="{{ "/sign-in/" | relURL }}" class="head-signin"{{ if eq $page.RelPermalink "/sign-in/" }} aria-current="page"{{ end }}>Sign in</a>
<a href="{{ "/start-now/" | relURL }}" class="btn btn-primary btn-sm">Start now</a>
</div>
<details class="menu">
<summary><span class="menu-word">Menu</span><span class="menu-glyph" aria-hidden="true"><i></i><i></i></span></summary>
<nav class="menu-panel" aria-label="Site">
@@ -27,72 +59,4 @@
</nav>
</details>
</div>
<nav class="nav nav-doors" aria-label="Site">
{{ range .Site.Menus.main }}
{{ $active := or (eq $page.RelPermalink .URL) (and (ne .URL "/") (hasPrefix $page.RelPermalink .URL)) }}
<a href="{{ .URL | relURL }}"{{ if $active }} aria-current="page"{{ end }}>{{ .Name }}</a>
{{ if $active }}
{{ with .Params.dropdown }}
<div class="nav-sub">
{{ range index $page.Site.Menus . }}
<a href="{{ .URL | relURL }}"{{ if eq $page.RelPermalink .URL }} aria-current="page"{{ end }}>{{ .Name }}</a>
{{ end }}
</div>
{{ end }}
{{ end }}
{{ end }}
</nav>
<div class="rail-actions">
<a href="{{ "/start-now/" | relURL }}" class="btn btn-primary btn-sm"><span class="btn-label">Start Now</span></a>
<a href="{{ "/sign-in/" | relURL }}" class="rail-signin"{{ if eq $page.RelPermalink "/sign-in/" }} aria-current="page"{{ end }}>Sign In</a>
</div>
{{ $toc := slice }}
{{ range .Params.sections }}
{{ $label := or .toc .kicker .headline }}
{{ if and $label (not (in (slice "hero" "divider" "final-cta") .type)) }}
{{ $toc = $toc | append (dict "label" ($label | plainify) "id" (partial "section-id.html" .)) }}
{{ end }}
{{ end }}
{{ if $toc }}
<hr class="rail-rule">
<nav class="nav nav-here" aria-label="On this page">
{{ range $toc }}<a href="#{{ .id }}">{{ .label }}</a>{{ end }}
</nav>
{{ end }}
{{/*
"Apps + AI": a slowly scrolling wall of app tiles pinned to the bottom of
the rail (wide screens only). The list is repeated once, hidden from
assistive tech and focus, so the scroll can loop seamlessly. Tiles come
from data/app_wall.yaml; icons from the sprite at images/app-icons.svg.
*/}}
{{ with hugo.Data.app_wall }}
{{ $sprite := "images/app-icons.svg" | relURL }}
<nav class="app-wall" aria-label="Apps + AI">
<a class="app-wall-head" href="{{ "/product/software-library/" | relURL }}">
<span class="app-wall-title">Apps + AI</span>
<span class="app-wall-count">Catalog<span class="arrow" aria-hidden="true">→</span></span>
</a>
<div class="app-wall-view">
<div class="app-wall-scroll">
{{ range $copy := slice 0 1 }}
<ul class="app-wall-grid"{{ if $copy }} aria-hidden="true"{{ end }}>
{{ range hugo.Data.app_wall }}
<li>
<a class="app-tile" href="{{ .url | relURL }}"{{ if $copy }} tabindex="-1"{{ end }}>
{{ with .icon }}<svg class="app-tile-icon" aria-hidden="true"><use href="{{ $sprite }}#{{ . }}"></use></svg>
{{ else }}<span class="app-tile-icon app-tile-letter" aria-hidden="true">{{ substr .name 0 1 }}</span>{{ end }}
<span class="app-tile-name">{{ .name }}</span>
</a>
</li>
{{ end }}
</ul>
{{ end }}
</div>
</div>
</nav>
{{ end }}
</aside>
</header>