oficina / estilo Public

Clone
git clone https://amadan.net/oficina/estilo

Plain git — no account needed to clone.

Download

Download this file

1# Estilo
2
3Estilo is the CARLOS suite's shared design system, at
4`amadan.net/oficina/estilo.git`. It's a private Go module: pull it with
5authenticated Git and `GOPRIVATE=amadan.net/oficina/estilo.git`.
6
7`theme` is Calma, the suite's look (AGENTS.md, "Theme"): `theme.CSS()` is
8the suite's theme and `theme.ForApp(slug)` an app's, with its accent from
9the colour ring in `theme/apps.go`. `theme.FontHandler` serves Onest, the
10typeface; link its `fonts.css` before the theme. `brand` holds the marks,
11and `sky` the seeded nebula for the sign-in, the team's home and the front
12page — never inside an app.
13
14`savestatus` is a save-status indicator, already adopted by Docs and
15Slides. It renders state (saved, saving, retrying, failed) inside a
16polite status region for screen readers; callers supply the localized
17message text for each state.
18
19`homeconnect` holds templates and data for Home account-connection and
20OAuth screens, being adopted by the shared home/connect flow and other
21apps. It carries no authentication logic — callers validate the
22destination and supply translated labels. The screens run without
23scripts.
24
25`base`, `menu` and `chrome` are the shared chrome from the round-2 spec
26(`docs/superpowers/specs/2026-09-23-shared-chrome.md` on
27`spec/shared-chrome`): link styling; the one floating menu panel and the
28document menu bar, with `menu.Shortcut` for platform-correct shortcut
29labels; and the top bar, account menu, app switcher, error page and
30sign-in pages, with the per-app Appearance preference. Link the three
31stylesheets in that order, after `tokens.css`, the theme and
32`brand.css`. `brand` serves the app icons from Go. Docs adopted first and
33Sheets second, and Sheets' corrections are in: a menu row or bar action
34can be a link, a POST (`menu.Item.Action`) or a dialog opened by the
35platform's invoker command (`menu.Item.Dialog`); `Bar.Actions` is
36`[]chrome.Action`; `<div estilo-shell="fill">` is the full-height layout
37(the viewport less the 52px bar); and `chrome.js` closes every member of
38the one `estilo-menus` group, menubar menus included, on Escape (in the
39capture phase) and an outside click.
40
41Permission and session logic stay app-owned. There is no
42shared component gallery yet.
43
44## Building
45
46`make test` is the gate: a module-cache check (`go mod verify`, re-fetching
47anything damaged), `go vet`, a `gofmt` check, `go build`, then `go test`. `savestatus`'s own tests run under Node.
48