oficina / estilo Public

chrome: the door's sky fades in and out inside the door (review)

Claude Fable 5.1: under an app's bar the sky began at full strength with
a hard edge. The whole sky now lies inside the door (placed so its
transparent top meets the door's edge, the door tall enough for its fade
out), so neither edge cuts it. The template comment now says what an app
must also do to show a sky; import grouping.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Paul Campbell pushed by paul@keymail.dev 09dfb01598db986a3667772153a7dd859f8bb17a parent d0c5843
3 files changed, +15 −6
  • chrome/chrome.css +8 −2
  • chrome/chrome.go +3 −2
  • chrome/templates/signin.html +4 −2

CI passed — run details

CI log
=== modcache ===
all modules verified
=== vet ===
CGO_ENABLED=0 go vet ./...
=== fmt ===
=== build ===
CGO_ENABLED=0 go build -buildvcs=false ./...
=== go-test ===
CGO_ENABLED=0 go test -count=1 ./...
ok  	amadan.net/oficina/estilo.git/base	0.004s
ok  	amadan.net/oficina/estilo.git/brand	0.003s
ok  	amadan.net/oficina/estilo.git/busy	0.003s
ok  	amadan.net/oficina/estilo.git/callui	0.004s
ok  	amadan.net/oficina/estilo.git/chrome	0.192s
?   	amadan.net/oficina/estilo.git/cmd/oficina-notices	[no test files]
ok  	amadan.net/oficina/estilo.git/credits	0.006s
ok  	amadan.net/oficina/estilo.git/credits/catalog	0.006s
ok  	amadan.net/oficina/estilo.git/homeconnect	0.006s
ok  	amadan.net/oficina/estilo.git/internal/lint	0.005s
?   	amadan.net/oficina/estilo.git/internal/tokencheck	[no test files]
ok  	amadan.net/oficina/estilo.git/menu	0.010s
ok  	amadan.net/oficina/estilo.git/savestatus	0.084s
ok  	amadan.net/oficina/estilo.git/sky	0.026s
ok  	amadan.net/oficina/estilo.git/theme	0.005s
diff --git a/chrome/chrome.css b/chrome/chrome.css
index 63d7b3f..1ff46e3 100644
--- a/chrome/chrome.css
+++ b/chrome/chrome.css
@@ -213,8 +213,14 @@
box-sizing: border-box;
margin-inline: calc(50% - 50vw);
padding: max(40px, 9vh) var(--rst-sp-4) var(--rst-sp-6);
- min-block-size: 70vh;
- --estilo-sky-top: -140px;
+ min-block-size: 680px;
+ /* The whole sky lies inside the door, fading in and out, so the door's
+ edges never cut it: under an app's bar there is no page top to hide
+ an edge behind, as there is on Home. A sky's layers overhang its box
+ by 12% above and below (sky.css), and fade in over their first 22%
+ and out from 58% to 92% — so a 560px sky placed 67px down starts
+ transparent at the door's top and has faded out by 640px. */
+ --estilo-sky-top: 67px;
--estilo-sky-height: 560px;
}
[estilo-signin] {
diff --git a/chrome/chrome.go b/chrome/chrome.go
index 181de37..895441e 100644
--- a/chrome/chrome.go
+++ b/chrome/chrome.go
@@ -20,7 +20,6 @@
package chrome
import (
- "amadan.net/oficina/estilo.git/sky"
"embed"
"net/http"
"strings"
@@ -28,6 +27,7 @@ import (
"unicode"
"amadan.net/oficina/estilo.git/menu"
+ "amadan.net/oficina/estilo.git/sky"
"github.com/carlosframework/rastrillo/sessions"
)
@@ -200,7 +200,8 @@ type SignIn struct {
Icon, Heading, Lede string
// App is the product's name, beside its mark at the head of the card
// ("Calendar"); Sky is the sky behind it, sky.For(<the instance's
- // host>). Both optional.
+ // host>). Both optional. A Sky needs sky.css linked, sky.Handler
+ // mounted at sky.Prefix and img-src data: allowed (the template).
App string
Sky sky.View
Error string
diff --git a/chrome/templates/signin.html b/chrome/templates/signin.html
index 053c444..b845801 100644
--- a/chrome/templates/signin.html
+++ b/chrome/templates/signin.html
@@ -11,8 +11,10 @@
the suite's sky behind (sky.View in .Sky; none if it is empty) and the
app's own mark and name at the card's head (.App; the mark alone if
empty). The sky's markup is the same as the sky package's estilo-sky
- template (chrome_test checks), repeated here so an app that parses
- chrome's templates needs nothing else. */}}
+ template (chrome_test checks), repeated here so an app need not parse
+ the sky package's templates. An app that passes a Sky must also link
+ sky.css, mount sky.Handler at sky.Prefix, and allow img-src data: (the
+ placeholder is inline) — without sky.css the layers flow in the page. */}}
{{define "estilo-door-open"}}<div estilo-door estilo-sky-host>
{{- with .Sky.Layers}}
<div estilo-sky aria-hidden="true">