oficina / meet Public

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

Plain git — no account needed to clone.

Download

Download this file

1{{define "layout"}}<!doctype html>
2{{/* layout — every page's document: the head, the estilo bar and <main>.
3
4 The bar is estilo's (chrome.Bar, built once per request in
5 chrome.go), in place of rastrillo's topbar shell: that was 81px, with
6 a raw address, a blue "Settings" link and a Sign out button wrapping
7 under it. estilo's is 52px at every width, signed in or out, with the
8 account always last in the same corner.
9
10 data-theme is written into the first bytes of the response, from the
11 Appearance cookie read server-side (chrome.Appearance), so there is
12 no flash. It is ABSENT for "system": theme.css's toggle is
13 :root[data-theme="light"|"dark"], and with no attribute the browser
14 follows the operating system.
15
16 The <title> is built here and only here, "{part} · {part} · Calls",
17 so no handler can drift from the suite's separator (spec §10).
18
19 <meta charset> comes first. The stylesheets are in the suite's fixed
20 order: tokens, theme, brand, then estilo's base, menu and chrome,
21 then the app's own; a page adds its own in "head", last. */}}
22<html lang="{{block "lang" .}}en{{end}}" dir="{{block "dir" .}}ltr{{end}}"{{with .Frame.Theme}} data-theme="{{.}}"{{end}}>
23<head>
24<meta charset="utf-8">
25<meta name="viewport" content="width=device-width, initial-scale=1">
26<title>{{range .Frame.TitleParts}}{{.}} · {{end}}{{.Frame.Chrome.App.Name}}</title>
27<link rel="icon" type="image/png" sizes="32x32" href="{{asset "static/brand/icon-32.png"}}">
28<link rel="icon" type="image/svg+xml" href="{{asset "static/brand/icon.svg"}}">
29<link rel="apple-touch-icon" sizes="180x180" href="{{asset "static/brand/apple-touch-icon.png"}}">
30<link rel="stylesheet" href="/static/estilo/fonts/v1/fonts.css">
31<link rel="stylesheet" href="{{asset "static/tokens.css"}}">
32<link rel="stylesheet" href="{{asset "static/busy.css"}}">
33<link rel="stylesheet" href="{{asset "static/theme.css"}}">
34<link rel="stylesheet" href="{{asset "static/brand/brand.css"}}">
35<link rel="stylesheet" href="{{asset "static/estilo/base.css"}}">
36<link rel="stylesheet" href="{{asset "static/estilo/menu.css"}}">
37<link rel="stylesheet" href="{{asset "static/estilo/chrome.css"}}">
38<link rel="stylesheet" href="{{asset "static/estilo/sky.css"}}">
39<link rel="stylesheet" href="{{asset "static/callui.css"}}">
40<link rel="stylesheet" href="{{asset "static/calls-shell.css"}}">
41<script defer src="{{asset "static/rastrillo.js"}}"></script>
42<script defer src="{{asset "static/busy.js"}}"></script>
43<script defer src="{{asset "static/estilo/chrome.js"}}"></script>
44{{iconAssets}}
45<script defer src="{{asset "static/select.js"}}"></script>
46{{block "head" .}}{{end}}
47</head>
48<body>
49{{/* The page shell. The call room replaces it (room.html's "body"): a
50 call is one rounded window in the viewport, and its navigation moves
51 into the title's menu, in the account menu's words and order. */}}
52{{block "body" .}}
53<div estilo-shell>
54<a rst-skip href="#main">{{.Frame.Chrome.Labels.Skip}}</a>
55{{template "estilo-bar" .Frame.Chrome}}
56<main rst-page id="main">
57{{template "content" .}}
58</main>
59</div>
60{{end}}
61</body>
62</html>
63{{end}}
64