Calma: the suite's theme, marks and sky
Estilo's theme is no longer day. Paul chose Calma after six rounds of design directions (2026-09-28/29): "Grain and filaments. No cores, no rim lights. Then go." Recorded as decisions-table row 8. - theme: Calma's tokens; one colour ring for every app (apps.go), with theme.ForApp(slug) giving each app its own accent; Onest served by theme.FontHandler. The day byte gate is replaced by day's token-set, rastrillo's contrast pairs for the suite and every app in both schemes, and per-app accent goldens. - brand: Calma's marks, generated for web, iPhone and Mac from icons.json, whose hues must equal the ring. Calls' art is calls.svg (meet stays as an alias); Fichas, Mail and Files have icons. - sky: the seeded nebula (haze, grained clouds, filaments) for the sign-in, the team's home and the front page; never inside an app. - credits: Onest's OFL notice, with provenance, behind -onest.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AGENTS.md+64 −50README.md+6 −2brand/README.md+41 −62brand/brand.css+2 −2brand/brand.go+8 −5brand/brand_test.go+45 −4brand/distribute.py+21 −7brand/generate-native.mjs+0 −89brand/generate.mjs+185 −37brand/icons.json+61 −8brand/mac/calendar.svg+1 −0brand/mac/calls.svg+1 −0brand/mac/docs.svg+1 −0brand/mac/fichas.svg+1 −0brand/mac/files.svg+1 −0brand/mac/mail.svg+1 −0brand/mac/memoria.svg+1 −0brand/mac/oficina.svg+1 −0brand/mac/sheets.svg+1 −0brand/mac/slides.svg+1 −0brand/native/calendar/AppIcon.icnsbinarybrand/native/calendar/ios-1024.pngbinarybrand/native/calendar/macos-1024.pngbinarybrand/native/calls/AppIcon.icnsbinarybrand/native/calls/ios-1024.pngbinarybrand/native/calls/macos-1024.pngbinarybrand/native/docs/AppIcon.icnsbinarybrand/native/docs/ios-1024.pngbinarybrand/native/docs/macos-1024.pngbinarybrand/native/meet/ios-1024.pngbinarybrand/native/meet/ios.svg+0 −24brand/native/meet/macos-1024.pngbinarybrand/native/meet/macos-128.pngbinarybrand/native/meet/macos-16.pngbinarybrand/native/meet/macos-256.pngbinarybrand/native/meet/macos-32.pngbinarybrand/native/meet/macos-512.pngbinarybrand/native/meet/macos-64.pngbinarybrand/native/meet/macos.svg+0 −24brand/native/memoria/AppIcon.icnsbinarybrand/native/memoria/ios-1024.pngbinarybrand/native/memoria/macos-1024.pngbinarybrand/native/sheets/AppIcon.icnsbinarybrand/native/sheets/ios-1024.pngbinarybrand/native/sheets/macos-1024.pngbinarybrand/png/calendar-1024.pngbinarybrand/png/calendar-16.pngbinarybrand/png/calendar-180.pngbinarybrand/png/calendar-192.pngbinarybrand/png/calendar-32.pngbinarybrand/png/calendar-48.pngbinarybrand/png/calendar-512.pngbinarybrand/png/calls-1024.pngbinarybrand/png/calls-16.pngbinarybrand/png/calls-180.pngbinarybrand/png/calls-192.pngbinarybrand/png/calls-32.pngbinarybrand/png/calls-48.pngbinarybrand/png/calls-512.pngbinarybrand/png/docs-1024.pngbinarybrand/png/docs-16.pngbinarybrand/png/docs-180.pngbinarybrand/png/docs-192.pngbinarybrand/png/docs-32.pngbinarybrand/png/docs-48.pngbinarybrand/png/docs-512.pngbinarybrand/png/fichas-1024.pngbinarybrand/png/fichas-16.pngbinarybrand/png/fichas-180.pngbinarybrand/png/fichas-192.pngbinarybrand/png/fichas-32.pngbinarybrand/png/fichas-48.pngbinarybrand/png/fichas-512.pngbinarybrand/png/files-1024.pngbinarybrand/png/files-16.pngbinarybrand/png/files-180.pngbinarybrand/png/files-192.pngbinarybrand/png/files-32.pngbinarybrand/png/files-48.pngbinarybrand/png/files-512.pngbinarybrand/png/mail-1024.pngbinarybrand/png/mail-16.pngbinarybrand/png/mail-180.pngbinarybrand/png/mail-192.pngbinarybrand/png/mail-32.pngbinarybrand/png/mail-48.pngbinarybrand/png/mail-512.pngbinarybrand/png/meet-1024.pngbinarybrand/png/meet-16.pngbinarybrand/png/meet-180.pngbinarybrand/png/meet-192.pngbinarybrand/png/meet-32.pngbinarybrand/png/meet-48.pngbinarybrand/png/meet-512.pngbinarybrand/png/memoria-1024.pngbinarybrand/png/memoria-16.pngbinarybrand/png/memoria-180.pngbinarybrand/png/memoria-192.pngbinarybrand/png/memoria-32.pngbinarybrand/png/memoria-48.pngbinarybrand/png/memoria-512.pngbinarybrand/png/oficina-1024.pngbinarybrand/png/oficina-16.pngbinarybrand/png/oficina-180.pngbinarybrand/png/oficina-192.pngbinarybrand/png/oficina-32.pngbinarybrand/png/oficina-48.pngbinarybrand/png/oficina-512.pngbinarybrand/png/sheets-1024.pngbinarybrand/png/sheets-16.pngbinarybrand/png/sheets-180.pngbinarybrand/png/sheets-192.pngbinarybrand/png/sheets-32.pngbinarybrand/png/sheets-48.pngbinarybrand/png/sheets-512.pngbinarybrand/png/slides-1024.pngbinarybrand/png/slides-16.pngbinarybrand/png/slides-180.pngbinarybrand/png/slides-192.pngbinarybrand/png/slides-32.pngbinarybrand/png/slides-48.pngbinarybrand/png/slides-512.pngbinarybrand/preview.pngbinarybrand/preview.svg+1 −97brand/square/calendar.svg+1 −0brand/square/calls.svg+1 −0brand/square/docs.svg+1 −0brand/square/fichas.svg+1 −0brand/square/files.svg+1 −0brand/square/mail.svg+1 −0brand/square/memoria.svg+1 −0brand/square/oficina.svg+1 −0brand/square/sheets.svg+1 −0brand/square/slides.svg+1 −0brand/svg/calendar.svg+1 −10brand/svg/calls.svg+1 −0brand/svg/docs.svg+1 −5brand/svg/fichas.svg+1 −0brand/svg/files.svg+1 −0brand/svg/mail.svg+1 −0brand/svg/meet.svg+0 −2brand/svg/memoria.svg+1 −4brand/svg/oficina.svg+1 −3brand/svg/sheets.svg+1 −4brand/svg/slides.svg+1 −3brand/upstream/book-search.svg+0 −16brand/upstream/calendar-days.svg+0 −22brand/upstream/file-text.svg+0 −17brand/upstream/panels-top-left.svg+0 −15brand/upstream/presentation.svg+0 −15brand/upstream/table.svg+0 −16brand/upstream/video.svg+0 −14homeconnect/README.md+1 −1
CI failed — run details
CI log
=== vet === CGO_ENABLED=0 go vet ./... ../../cache/go-mod/github.com/carlosframework/rastrillo@v0.23.0/sessions/sessions.go:72:12: pattern migrations/*.sql: no matching files found make: *** [Makefile:22: test-vet] Error 1 amadan: step vet failed: exit status 2 amadan: job failed at step vet — its output is above, not at the tail of this log
AGENTS.mdLoading diff…
README.mdLoading diff…
brand/README.mdLoading diff…
brand/brand.cssLoading diff…
brand/brand.goLoading diff…
brand/brand_test.goLoading diff…
brand/distribute.pyLoading diff…
brand/generate-native.mjsLoading diff…
brand/generate.mjsLoading diff…
brand/icons.jsonLoading diff…
brand/mac/calendar.svgLoading diff…
brand/mac/calls.svgLoading diff…
brand/mac/docs.svgLoading diff…
brand/mac/fichas.svgLoading diff…
brand/mac/files.svgLoading diff…
brand/mac/mail.svgLoading diff…
brand/mac/memoria.svgLoading diff…
brand/mac/oficina.svgLoading diff…
brand/mac/sheets.svgLoading diff…
brand/mac/slides.svgLoading diff…
brand/native/calendar/AppIcon.icnsLoading diff…
brand/native/calendar/ios-1024.pngLoading diff…
brand/native/calendar/macos-1024.pngLoading diff…
brand/native/calls/AppIcon.icnsLoading diff…
brand/native/calls/ios-1024.pngLoading diff…
brand/native/calls/macos-1024.pngLoading diff…
brand/native/docs/AppIcon.icnsLoading diff…
brand/native/docs/ios-1024.pngLoading diff…
brand/native/docs/macos-1024.pngLoading diff…
brand/native/meet/ios-1024.pngLoading diff…
brand/native/meet/ios.svgLoading diff…
brand/native/meet/macos-1024.pngLoading diff…
brand/native/meet/macos-128.pngLoading diff…
brand/native/meet/macos-16.pngLoading diff…
brand/native/meet/macos-256.pngLoading diff…
brand/native/meet/macos-32.pngLoading diff…
brand/native/meet/macos-512.pngLoading diff…
brand/native/meet/macos-64.pngLoading diff…
brand/native/meet/macos.svgLoading diff…
brand/native/memoria/AppIcon.icnsLoading diff…
brand/native/memoria/ios-1024.pngLoading diff…
brand/native/memoria/macos-1024.pngLoading diff…
brand/native/sheets/AppIcon.icnsLoading diff…
brand/native/sheets/ios-1024.pngLoading diff…
brand/native/sheets/macos-1024.pngLoading diff…
brand/png/calendar-1024.pngLoading diff…
brand/png/calendar-16.pngLoading diff…
brand/png/calendar-180.pngLoading diff…
brand/png/calendar-192.pngLoading diff…
brand/png/calendar-32.pngLoading diff…
brand/png/calendar-48.pngLoading diff…
brand/png/calendar-512.pngLoading diff…
brand/png/calls-1024.pngLoading diff…
brand/png/calls-16.pngLoading diff…
brand/png/calls-180.pngLoading diff…
brand/png/calls-192.pngLoading diff…
brand/png/calls-32.pngLoading diff…
brand/png/calls-48.pngLoading diff…
brand/png/calls-512.pngLoading diff…
brand/png/docs-1024.pngLoading diff…
brand/png/docs-16.pngLoading diff…
brand/png/docs-180.pngLoading diff…
brand/png/docs-192.pngLoading diff…
brand/png/docs-32.pngLoading diff…
brand/png/docs-48.pngLoading diff…
brand/png/docs-512.pngLoading diff…
brand/png/fichas-1024.pngLoading diff…
brand/png/fichas-16.pngLoading diff…
brand/png/fichas-180.pngLoading diff…
brand/png/fichas-192.pngLoading diff…
brand/png/fichas-32.pngLoading diff…
brand/png/fichas-48.pngLoading diff…
brand/png/fichas-512.pngLoading diff…
brand/png/files-1024.pngLoading diff…
brand/png/files-16.pngLoading diff…
brand/png/files-180.pngLoading diff…
brand/png/files-192.pngLoading diff…
brand/png/files-32.pngLoading diff…
brand/png/files-48.pngLoading diff…
brand/png/files-512.pngLoading diff…
brand/png/mail-1024.pngLoading diff…
brand/png/mail-16.pngLoading diff…
brand/png/mail-180.pngLoading diff…
brand/png/mail-192.pngLoading diff…
brand/png/mail-32.pngLoading diff…
brand/png/mail-48.pngLoading diff…
brand/png/mail-512.pngLoading diff…
brand/png/meet-1024.pngLoading diff…
brand/png/meet-16.pngLoading diff…
brand/png/meet-180.pngLoading diff…
brand/png/meet-192.pngLoading diff…
brand/png/meet-32.pngLoading diff…
brand/png/meet-48.pngLoading diff…
brand/png/meet-512.pngLoading diff…
brand/png/memoria-1024.pngLoading diff…
brand/png/memoria-16.pngLoading diff…
brand/png/memoria-180.pngLoading diff…
brand/png/memoria-192.pngLoading diff…
brand/png/memoria-32.pngLoading diff…
brand/png/memoria-48.pngLoading diff…
brand/png/memoria-512.pngLoading diff…
brand/png/oficina-1024.pngLoading diff…
brand/png/oficina-16.pngLoading diff…
brand/png/oficina-180.pngLoading diff…
brand/png/oficina-192.pngLoading diff…
brand/png/oficina-32.pngLoading diff…
brand/png/oficina-48.pngLoading diff…
brand/png/oficina-512.pngLoading diff…
brand/png/sheets-1024.pngLoading diff…
brand/png/sheets-16.pngLoading diff…
brand/png/sheets-180.pngLoading diff…
brand/png/sheets-192.pngLoading diff…
brand/png/sheets-32.pngLoading diff…
brand/png/sheets-48.pngLoading diff…
brand/png/sheets-512.pngLoading diff…
brand/png/slides-1024.pngLoading diff…
brand/png/slides-16.pngLoading diff…
brand/png/slides-180.pngLoading diff…
brand/png/slides-192.pngLoading diff…
brand/png/slides-32.pngLoading diff…
brand/png/slides-48.pngLoading diff…
brand/png/slides-512.pngLoading diff…
brand/preview.pngLoading diff…
brand/preview.svgLoading diff…
brand/square/calendar.svgLoading diff…
brand/square/calls.svgLoading diff…
brand/square/docs.svgLoading diff…
brand/square/fichas.svgLoading diff…
brand/square/files.svgLoading diff…
brand/square/mail.svgLoading diff…
brand/square/memoria.svgLoading diff…
brand/square/oficina.svgLoading diff…
brand/square/sheets.svgLoading diff…
brand/square/slides.svgLoading diff…
brand/svg/calendar.svgLoading diff…
brand/svg/calls.svgLoading diff…
brand/svg/docs.svgLoading diff…
brand/svg/fichas.svgLoading diff…
brand/svg/files.svgLoading diff…
brand/svg/mail.svgLoading diff…
brand/svg/meet.svgLoading diff…
brand/svg/memoria.svgLoading diff…
brand/svg/oficina.svgLoading diff…
brand/svg/sheets.svgLoading diff…
brand/svg/slides.svgLoading diff…
brand/upstream/book-search.svgLoading diff…
brand/upstream/calendar-days.svgLoading diff…
brand/upstream/file-text.svgLoading diff…
brand/upstream/panels-top-left.svgLoading diff…
brand/upstream/presentation.svgLoading diff…
brand/upstream/table.svgLoading diff…
brand/upstream/video.svgLoading diff…
homeconnect/README.mdLoading diff…