the marquee comes back down: the host is not a project
commit d6a1b2e5970dfc0f80ee126e9461d2b5083c9224 · parent 6b3477bda1
· browse this tree
Ximianth, 2026-10-30 15:33:40 UTC
Warpfork's review: wildly less, and the metaphor was wrong -- pedestals hold exhibits, and the host is the gallery, not a thing on display. The masthead and its grand plinth are gone. The sitename's visual impact is now just the header nameplate: on the entrance (the one page whose first crumb is unlinked), that crumb wears the accent, slightly larger. One name, one place, no furniture.
diff --git a/chrome.go b/chrome.go index 6c97770..98f57cd 100644 --- a/chrome.go +++ b/chrome.go @@ -93,7 +93,7 @@ var soclePageTmpl = template.Must(template.New("socle").Parse(`<!doctype html> <div class="flank left"></div><div class="flank right"></div> <div class="sheet"> <nav class="crumbs"> -{{range $i, $c := .Crumbs}}{{if $i}} / {{end}}{{if $c.Href}}<a href="{{$c.Href}}">{{$c.Name}}</a>{{else}}{{$c.Name}}{{end}}{{end}} +{{range $i, $c := .Crumbs}}{{if $i}} / {{end}}{{if $c.Href}}<a href="{{$c.Href}}">{{$c.Name}}</a>{{else if $i}}{{$c.Name}}{{else}}<span class="site">{{$c.Name}}</span>{{end}}{{end}} </nav> {{if .Arc}}<nav class="arc{{if not .Dawn}} corner{{end}}" aria-label="page moves" style="--arc-drop:{{.ArcDrop}}px"> {{range .Arc}}<a class="v{{.Variant}}" href="{{.Href}}"{{if .Title}} title="{{.Title}}"{{end}} style="--dy:{{.DY}}px">{{.Label}}</a> @@ -211,24 +211,13 @@ nav.arc.corner a { font-size: .72rem; } -/* The marquee: the site's own name over the door, standing on the grandest pedestal -- - the gallery itself is the first exhibit. The name sits on the cap. */ -article .marquee { text-align: center; margin: .6rem 0 2.4rem; } -article .marquee .sitename { - /* clamp: a long sitename shrinks rather than overflowing a phone; - the cap underneath is 220px, and 11vw tracks that scale at narrow widths. */ - font-size: clamp(1.6rem, 11vw, 2.7rem); - font-weight: 700; +/* The nameplate: on the entrance (the one page whose first crumb is unlinked), + the sitename wears the accent -- the gallery's name at the door, and nothing more. */ +nav.crumbs .site { color: var(--accent); - line-height: 1.05; - margin: 0 0 -19px; - position: relative; -} -article .marquee .pedestal { - height: 132px; - background-position: top center; - background-size: 220px 132px; - background-repeat: no-repeat; + font-weight: 600; + font-size: 1.05rem; + letter-spacing: .05em; } /* The entrance: repos as exhibit stands, surveyed rather than parsed. @@ -495,7 +484,6 @@ func sketchCSS(scheme string) string { .flank { background-image: %s; } footer.ground .floor { background-image: %s; } .stand .pedestal, .emptyroom .pedestal { background-image: %s; } -.marquee .pedestal { background-image: %s; } /* Hand-ruled lines replace solid borders on the nav and headings. */ nav.crumbs, article h1, article h2 { border-bottom: none; @@ -550,7 +538,7 @@ nav.arc a.va:active { background-image: %s; } nav.arc a.vb:active { background-image: %s; } nav.arc a.vc:active { background-image: %s; } `, - u("flank"), u("ground"), u("plinth"), u("plinthgrand"), u("rule"), u("rule"), u("rulesoft"), u("tab"), u("chip"), u("frame"), u("frame"), + u("flank"), u("ground"), u("plinth"), u("rule"), u("rule"), u("rulesoft"), u("tab"), u("chip"), u("frame"), u("frame"), u("circle-a"), u("circle-b"), u("circle-c"), u("circle-b"), u("circle-c"), u("circle-a"), u("circle-c"), u("circle-a"), u("circle-b")) diff --git a/pages.go b/pages.go index edf48c0..0a0633f 100644 --- a/pages.go +++ b/pages.go @@ -88,17 +88,14 @@ func repoCrumbs(site, name string, more ...crumbLink) []display.Crumb { // ---- index ---- -// The entrance: the marquee first -- the site's own name on the grandest pedestal, -// the gallery itself as the first exhibit -- then every repo as an exhibit stand: -// the name atop a pedestal (the ground glyph's family), the description as its -// placard, and the newest commit subject as a one-line "now showing" caption in soft ink. -var indexTmpl = template.Must(template.New("index").Parse(`<header class="marquee"> -<p class="sitename">{{.SiteName}}</p> -<div class="pedestal"></div> -</header> -<h1>repositories</h1> +// The entrance: every repo is an exhibit stand -- the name atop a pedestal +// (the ground glyph's family), the description as its placard, and the newest +// commit subject as a one-line "now showing" caption in soft ink. +// The site's own name appears only as the header nameplate (accented there by the +// chrome): the host is the gallery, not an exhibit, so it gets no stand of its own. +var indexTmpl = template.Must(template.New("index").Parse(`<h1>repositories</h1> <ul class="entrance"> -{{range .Rows}}<li class="stand"> +{{range .}}<li class="stand"> <p class="name"><a href="/{{.Name}}/">{{.Name}}</a></p> <div class="pedestal"></div> {{if or .Description .LangColor}}<p class="placard">{{if .LangColor}}<span class="swatch" style="background:{{.LangColor}}" title="{{.Lang}}"></span>{{end}}{{.Description}}</p> @@ -140,10 +137,7 @@ func (s *server) serveIndex(w http.ResponseWriter, r *http.Request, snap *snapsh if snap.baseURL != "" { pd.Canon = snap.baseURL + "/" } - s.render(w, snap, indexTmpl, struct { - SiteName string - Rows []indexRow - }{snap.face.siteName, rows}, pd) + s.render(w, snap, indexTmpl, rows, pd) } // ---- the empty room (404) ---- diff --git a/sketch.go b/sketch.go index 7d1582a..adf619e 100644 --- a/sketch.go +++ b/sketch.go @@ -142,7 +142,6 @@ func sketchAssets(seed string) map[string][]byte { m["flank-"+p.scheme+".svg"] = flankSVG(seed, p) m["ground-"+p.scheme+".svg"] = groundSVG(seed, p) m["plinth-"+p.scheme+".svg"] = plinthSVG(seed, p) - m["plinthgrand-"+p.scheme+".svg"] = plinthGrandSVG(seed, p) m["chip-"+p.scheme+".svg"] = chipSVG(seed, p) m["tab-"+p.scheme+".svg"] = tabSVG(seed, p) for _, v := range []string{"a", "b", "c"} { @@ -373,27 +372,6 @@ func faviconSVG(seed string) []byte { return []byte(sb.String()) } -// plinthGrandSVG is the marquee's pedestal: the same cap/die/plinth family at the -// entrance-masthead size, drawn natively rather than scaled so the stroke weight -// stays in step with its siblings. The site's own name stands on this one. -func plinthGrandSVG(seed string, p sketchPalette) []byte { - rng := newSketchRand(seed + "/plinthgrand/" + p.scheme) - var sb strings.Builder - svgOpen(&sb, 220, 132) - boxes := func(d *strings.Builder, amp, over float64) { - roughBox(d, rng, 31, 16, 157, 22, amp, over) - roughBox(d, rng, 53, 38, 113, 63, amp, over) - roughBox(d, rng, 16, 101, 188, 25, amp, over) - } - var d1, d2 strings.Builder - boxes(&d1, 1.2, 3.0) - boxes(&d2, 1.8, 3.6) - svgPath(&sb, d1.String(), p.ink, 1.8, 0.75) - svgPath(&sb, d2.String(), p.ink, 1.3, 0.28) - sb.WriteString("</svg>\n") - return []byte(sb.String()) -} - // chipSVG is the frame's small sibling: a border-image tile for inline chips // (the ledger's sha buttons). A 48x48 tile sliced at 8 with lines at inset 4, // so a border a hair under the slice renders the stroke near 1:1; displacement diff --git a/testdata/pages.md b/testdata/pages.md index c523dc4..e5432f1 100644 --- a/testdata/pages.md +++ b/testdata/pages.md @@ -41,13 +41,9 @@ Content-Type: text/html; charset=utf-8 <div class="flank left"></div><div class="flank right"></div> <div class="sheet"> <nav class="crumbs"> -test +<span class="site">test</span> </nav> -<main><article><header class="marquee"> -<p class="sitename">test</p> -<div class="pedestal"></div> -</header> -<h1>repositories</h1> +<main><article><h1>repositories</h1> <ul class="entrance"> <li class="stand"> <p class="name"><a href="/fixturama/">fixturama</a></p> diff --git a/testdata/sketch.md b/testdata/sketch.md index fd1eca3..129b07b 100644 --- a/testdata/sketch.md +++ b/testdata/sketch.md @@ -237,23 +237,3 @@ Regenerate with `go test -run TestSketchSnapshots -testmark.regen` and review th </svg> ``` -### plinthgrand-light.svg - -[testmark]:# (plinthgrand-light.svg) -```svg -<svg xmlns="http://www.w3.org/2000/svg" width="220" height="132" viewBox="0 0 220 132"> -<path d="M29.5 15.7C82.6 16.6 135.8 15.2 189.0 15.8M188.4 14.8C187.8 22.4 188.2 30.0 187.5 37.6M189.4 37.4C136.6 38.4 83.8 39.1 30.9 38.4M30.4 37.8C29.5 29.9 29.6 22.1 30.5 14.2M52.6 37.6C90.7 37.5 128.9 38.3 167.0 38.3M166.2 36.4C165.7 58.1 166.2 79.8 166.3 101.5M168.1 101.3C129.5 102.3 91.0 102.6 52.4 101.4M53.1 103.5C53.7 81.1 52.5 58.7 52.8 36.4M13.4 101.4C77.6 100.1 141.8 101.9 206.0 101.0M203.9 98.3C203.5 107.9 203.6 117.5 204.5 127.0M206.6 126.0C143.1 126.1 79.5 124.7 16.0 125.8M16.1 128.7C14.8 119.4 15.2 110.0 15.6 100.7" fill="none" stroke="#24292f" stroke-width="1.8" stroke-opacity="0.75" stroke-linecap="round"/> -<path d="M30.3 15.7C83.6 15.7 136.8 16.8 190.1 16.0M188.7 13.3C189.9 21.9 188.5 30.4 188.4 39.0M188.6 37.3C134.8 38.4 81.0 39.0 27.3 37.4M30.3 40.8C28.6 31.5 31.1 22.2 30.4 12.9M52.1 37.4C90.4 39.0 128.7 39.6 167.1 38.0M165.9 38.8C164.5 60.3 166.8 81.7 166.6 103.2M167.4 100.5C128.9 102.3 90.4 100.9 51.9 101.2M53.6 103.7C52.6 81.7 53.5 59.6 53.7 37.6M14.6 101.8C78.7 99.5 142.9 101.8 207.1 100.2M203.8 97.5C205.1 108.1 205.2 118.6 203.4 129.0M204.8 126.6C140.6 128.2 76.4 125.6 12.2 126.4M16.4 128.1C14.8 119.1 16.8 110.2 16.1 101.3" fill="none" stroke="#24292f" stroke-width="1.3" stroke-opacity="0.28" stroke-linecap="round"/> -</svg> -``` - -### plinthgrand-dark.svg - -[testmark]:# (plinthgrand-dark.svg) -```svg -<svg xmlns="http://www.w3.org/2000/svg" width="220" height="132" viewBox="0 0 220 132"> -<path d="M27.7 15.7C81.4 16.5 135.0 15.5 188.7 15.7M188.4 15.7C188.5 23.8 188.9 31.9 187.5 39.9M188.6 38.4C135.3 37.9 81.9 37.9 28.5 38.2M31.1 41.2C31.3 32.3 30.9 23.5 30.9 14.7M51.2 37.7C89.3 37.6 127.5 38.7 165.7 38.2M165.8 37.3C165.3 59.0 166.3 80.6 166.4 102.3M165.9 100.4C127.9 100.6 90.0 100.8 52.1 101.3M53.2 103.7C52.4 81.0 53.7 58.3 53.3 35.6M16.0 100.9C79.0 101.5 142.1 101.9 205.1 101.5M204.4 99.9C203.1 109.4 204.1 118.8 203.5 128.3M205.6 126.5C142.3 125.1 78.9 126.9 15.6 125.8M15.5 127.4C15.4 117.9 15.8 108.3 16.1 98.8" fill="none" stroke="#e6edf3" stroke-width="1.8" stroke-opacity="0.75" stroke-linecap="round"/> -<path d="M28.8 15.4C82.4 14.8 135.9 14.3 189.4 15.6M188.5 12.3C188.8 21.7 187.9 31.0 187.6 40.3M187.6 37.3C134.1 37.2 80.6 39.9 27.1 38.7M31.6 38.6C31.2 30.6 30.5 22.6 31.5 14.6M50.9 37.1C89.4 36.6 128.0 35.6 166.6 37.3M165.9 36.3C165.2 58.4 164.8 80.5 165.9 102.6M168.3 100.2C128.9 99.7 89.5 100.7 50.2 101.6M53.8 101.0C52.5 79.5 54.3 58.0 53.4 36.5M14.2 101.2C78.6 100.4 143.1 103.3 207.5 101.8M204.3 97.9C205.4 108.5 202.9 119.1 203.7 129.8M207.5 125.8C143.3 126.6 79.1 124.7 14.9 125.9M15.4 126.1C16.9 117.6 14.4 109.1 16.1 100.6" fill="none" stroke="#e6edf3" stroke-width="1.3" stroke-opacity="0.28" stroke-linecap="round"/> -</svg> -``` -