The fleet: g1t's new mark
A 1 in front of the agents behind it. Replaces the cube in the site, the docs, the favicons and the email header, with public brand files at /brand/ and a kit for Stripe and the like in .g1t/brand/.
| 1 | + | # g1t brand files | |
| 2 | + | ||
| 3 | + | The mark is "the fleet": three 1s stepping back in depth, the agents at work | |
| 4 | + | behind the one change in front. The front 1 is `#ededef` (`--g1t-fg`), the two | |
| 5 | + | behind it are lavender `#b6a8ff` (`--g1t-merged`) at 65% and 35%, on the very | |
| 6 | + | dark gray base `#0f0f11` (`--g1t-bg`). On light backgrounds the front 1 is | |
| 7 | + | `#161618` and the lavender deepens to `#6b56e8`. | |
| 8 | + | ||
| 9 | + | These are the files to upload to Stripe and similar services. The site serves | |
| 10 | + | its own copies from `apps/web/public` and `apps/docs/public`. | |
| 11 | + | ||
| 12 | + | | File | Size | Use | | |
| 13 | + | | --- | --- | --- | | |
| 14 | + | | `icon-512.png` | 512×512, dark square | Stripe branding icon (square, at least 128px), Slack, GitHub app avatars | | |
| 15 | + | | `icon-1024.png` | 1024×1024, dark square | App stores and anywhere asking for a large square icon | | |
| 16 | + | | `icon-transparent-1024.png` | 1024×1024, transparent | Placing the mark on a dark surface of your own | | |
| 17 | + | | `logo-on-dark.png` | 1056×642, dark background | Stripe branding logo (wide), docs and decks on dark | | |
| 18 | + | | `logo-on-light.png` | 1056×642, white background | Invoices, receipts and anywhere the background is light | | |
| 19 | + | | `og-1200x630.png` | 1200×630 | Social and Open Graph card | | |
| 20 | + | ||
| 21 | + | ## Sources | |
| 22 | + | ||
| 23 | + | `svg/` holds the source of every file above and of the site's favicons: | |
| 24 | + | ||
| 25 | + | | File | What it is | | |
| 26 | + | | --- | --- | | |
| 27 | + | | `svg/mark.svg` | The mark on transparent, for dark backgrounds (also `packages/theme/mark.svg`) | | |
| 28 | + | | `svg/mark-on-light.svg` | The mark on transparent, for light backgrounds | | |
| 29 | + | | `svg/mark-small.svg` | The 16px cut: pixel-aligned, with a notch between the front 1's flag and the bar behind it | | |
| 30 | + | | `svg/icon-square.svg` | The mark on a full-bleed dark square (`icon-512.png`, `icon-1024.png`) | | |
| 31 | + | | `svg/icon-rounded.svg` | The mark on a rounded dark tile (`favicon.ico` at 32 and 48, `brand/g1t-mark.*`) | | |
| 32 | + | | `svg/icon-padded.svg` | The mark with room for a circle crop (`apple-touch-icon.png`, `icon-192.png`, `icon-512.png` in the apps) | | |
| 33 | + | | `svg/favicon.svg` | The 16px cut with no tile, coloured for a light or dark browser (`favicon.svg` in the apps) | | |
| 34 | + | | `svg/logo.svg`, `svg/logo-on-light.svg` | The mark and the wordmark, transparent, for dark and light backgrounds | | |
| 35 | + | | `svg/logo-dark-bg.svg`, `svg/logo-light-bg.svg` | The same lockups with padding and a background | | |
| 36 | + | | `svg/og.svg` | The social card; its tagline uses Inter and JetBrains Mono as live text | | |
| 37 | + | ||
| 38 | + | The wordmark is "g1t" in Inter ExtraBold at -0.05em tracking, outlined to paths | |
| 39 | + | so the files need no font. | |
| 40 | + | ||
| 41 | + | ## On the web | |
| 42 | + | ||
| 43 | + | `apps/web/public/brand/` is served at `https://g1t.sh/brand/` for emails and | |
| 44 | + | anything that links to the mark: | |
| 45 | + | ||
| 46 | + | - `g1t-mark.svg`, `g1t-mark.png` (256px): the mark on a rounded dark tile, readable on any background | |
| 47 | + | - `g1t-logo.svg`, `g1t-logo.png`: the lockup for light backgrounds, used in g1t's emails | |
| 48 | + | - `g1t-logo-on-dark.svg`, `g1t-logo-on-dark.png`: the lockup for dark backgrounds |
Binary or large file; its contents are not shown.
Binary or large file; its contents are not shown.
Binary or large file; its contents are not shown.
Binary or large file; its contents are not shown.
Binary or large file; its contents are not shown.
Binary or large file; its contents are not shown.
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><style>.f{fill:#161618}.f.s{fill:none;stroke:#161618}.m{fill:#6b56e8}@media (prefers-color-scheme: dark){.f{fill:#ededef}.f.s{fill:none;stroke:#ededef}.m{fill:#b6a8ff}}</style><mask id="cut" maskUnits="userSpaceOnUse" x="0" y="0" width="16" height="16"><rect width="16" height="16" fill="#fff"/><path d="M10.5 3.5 8.5 5.4" stroke="#000" stroke-width="3.6" stroke-linecap="round"/></mask><g mask="url(#cut)"><rect class="m" x="3" y="5.5" width="2" height="8.5" rx="1" fill-opacity="0.5"/><rect class="m" x="6" y="4" width="2" height="10" rx="1" fill-opacity="0.85"/></g><rect class="f" x="9" y="2" width="3" height="12" rx="1.5"/><path class="f s" d="M10.5 3.5 8.5 5.4" stroke-width="2.2" stroke-linecap="round"/></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" fill="#0f0f11"/><g transform="translate(3.2 3.2) scale(0.8)"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></g></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="7" fill="#0f0f11"/><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" fill="#0f0f11"/><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352.19 214.04"><rect width="352.19" height="214.04" rx="0" fill="#0f0f11"/><g transform="translate(37.23 43.65) scale(3.3)"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></g><path transform="translate(161.08 132.75)" fill="#ededef" d="M30.42 21.29Q22.8 21.29 17.5 19.26Q12.21 17.24 9.16 13.67Q6.1 10.11 5.22 5.42L20.75 4.1Q21.19 5.66 22.46 6.86Q23.73 8.06 25.71 8.74Q27.69 9.42 30.37 9.42Q35.3 9.42 37.89 6.93Q40.48 4.44 40.48 -0.59V-9.28H39.89Q38.72 -6.54 36.65 -4.57Q34.57 -2.59 31.67 -1.56Q28.76 -0.54 25.1 -0.54Q18.7 -0.54 13.7 -3.64Q8.69 -6.74 5.83 -12.6Q2.98 -18.46 2.98 -26.76Q2.98 -35.3 5.91 -41.36Q8.84 -47.41 13.82 -50.63Q18.8 -53.86 25 -53.86Q28.81 -53.86 31.71 -52.66Q34.62 -51.46 36.77 -49.41Q38.92 -47.36 40.23 -44.73H40.48V-52.93H57.23V-2.1Q57.23 5.91 53.91 11.08Q50.59 16.26 44.56 18.77Q38.53 21.29 30.42 21.29ZM30.32 -13.38Q33.54 -13.38 35.89 -15.01Q38.23 -16.65 39.53 -19.7Q40.82 -22.75 40.82 -26.95Q40.82 -31.15 39.53 -34.23Q38.23 -37.3 35.89 -38.99Q33.54 -40.67 30.32 -40.67Q27.15 -40.67 24.88 -38.99Q22.61 -37.3 21.41 -34.23Q20.21 -31.15 20.21 -26.95Q20.21 -22.71 21.41 -19.65Q22.61 -16.6 24.88 -14.99Q27.15 -13.38 30.32 -13.38ZM94.12 -72.75V0H77.08V-57.37H76.84L60.33 -46.53V-61.57L77.47 -72.75ZM130.48 -52.93V-40.09H95.18V-52.93ZM103.28 -66.5H120.22V-17.04Q120.22 -14.75 121.23 -13.75Q122.23 -12.74 124.81 -12.74Q125.89 -12.74 127.62 -12.84Q129.36 -12.94 130.14 -13.04L131.11 -0.29Q129.11 0.1 126.43 0.22Q123.74 0.34 121.1 0.34Q112.07 0.34 107.68 -3.42Q103.28 -7.18 103.28 -14.79Z"/></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352.19 214.04"><rect width="352.19" height="214.04" rx="0" fill="#ffffff"/><g transform="translate(37.23 43.65) scale(3.3)"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#6b56e8" fill-opacity="0.4"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#6b56e8" fill-opacity="0.75"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#161618"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#161618" stroke-width="4.6" stroke-linecap="round"/></g></g><path transform="translate(161.08 132.75)" fill="#161618" d="M30.42 21.29Q22.8 21.29 17.5 19.26Q12.21 17.24 9.16 13.67Q6.1 10.11 5.22 5.42L20.75 4.1Q21.19 5.66 22.46 6.86Q23.73 8.06 25.71 8.74Q27.69 9.42 30.37 9.42Q35.3 9.42 37.89 6.93Q40.48 4.44 40.48 -0.59V-9.28H39.89Q38.72 -6.54 36.65 -4.57Q34.57 -2.59 31.67 -1.56Q28.76 -0.54 25.1 -0.54Q18.7 -0.54 13.7 -3.64Q8.69 -6.74 5.83 -12.6Q2.98 -18.46 2.98 -26.76Q2.98 -35.3 5.91 -41.36Q8.84 -47.41 13.82 -50.63Q18.8 -53.86 25 -53.86Q28.81 -53.86 31.71 -52.66Q34.62 -51.46 36.77 -49.41Q38.92 -47.36 40.23 -44.73H40.48V-52.93H57.23V-2.1Q57.23 5.91 53.91 11.08Q50.59 16.26 44.56 18.77Q38.53 21.29 30.42 21.29ZM30.32 -13.38Q33.54 -13.38 35.89 -15.01Q38.23 -16.65 39.53 -19.7Q40.82 -22.75 40.82 -26.95Q40.82 -31.15 39.53 -34.23Q38.23 -37.3 35.89 -38.99Q33.54 -40.67 30.32 -40.67Q27.15 -40.67 24.88 -38.99Q22.61 -37.3 21.41 -34.23Q20.21 -31.15 20.21 -26.95Q20.21 -22.71 21.41 -19.65Q22.61 -16.6 24.88 -14.99Q27.15 -13.38 30.32 -13.38ZM94.12 -72.75V0H77.08V-57.37H76.84L60.33 -46.53V-61.57L77.47 -72.75ZM130.48 -52.93V-40.09H95.18V-52.93ZM103.28 -66.5H120.22V-17.04Q120.22 -14.75 121.23 -13.75Q122.23 -12.74 124.81 -12.74Q125.89 -12.74 127.62 -12.84Q129.36 -12.94 130.14 -13.04L131.11 -0.29Q129.11 0.1 126.43 0.22Q123.74 0.34 121.1 0.34Q112.07 0.34 107.68 -3.42Q103.28 -7.18 103.28 -14.79Z"/></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 232.19 94.04"><g transform="translate(-22.77 -16.35) scale(3.3)"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#6b56e8" fill-opacity="0.4"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#6b56e8" fill-opacity="0.75"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#161618"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#161618" stroke-width="4.6" stroke-linecap="round"/></g></g><path transform="translate(101.08 72.75)" fill="#161618" d="M30.42 21.29Q22.8 21.29 17.5 19.26Q12.21 17.24 9.16 13.67Q6.1 10.11 5.22 5.42L20.75 4.1Q21.19 5.66 22.46 6.86Q23.73 8.06 25.71 8.74Q27.69 9.42 30.37 9.42Q35.3 9.42 37.89 6.93Q40.48 4.44 40.48 -0.59V-9.28H39.89Q38.72 -6.54 36.65 -4.57Q34.57 -2.59 31.67 -1.56Q28.76 -0.54 25.1 -0.54Q18.7 -0.54 13.7 -3.64Q8.69 -6.74 5.83 -12.6Q2.98 -18.46 2.98 -26.76Q2.98 -35.3 5.91 -41.36Q8.84 -47.41 13.82 -50.63Q18.8 -53.86 25 -53.86Q28.81 -53.86 31.71 -52.66Q34.62 -51.46 36.77 -49.41Q38.92 -47.36 40.23 -44.73H40.48V-52.93H57.23V-2.1Q57.23 5.91 53.91 11.08Q50.59 16.26 44.56 18.77Q38.53 21.29 30.42 21.29ZM30.32 -13.38Q33.54 -13.38 35.89 -15.01Q38.23 -16.65 39.53 -19.7Q40.82 -22.75 40.82 -26.95Q40.82 -31.15 39.53 -34.23Q38.23 -37.3 35.89 -38.99Q33.54 -40.67 30.32 -40.67Q27.15 -40.67 24.88 -38.99Q22.61 -37.3 21.41 -34.23Q20.21 -31.15 20.21 -26.95Q20.21 -22.71 21.41 -19.65Q22.61 -16.6 24.88 -14.99Q27.15 -13.38 30.32 -13.38ZM94.12 -72.75V0H77.08V-57.37H76.84L60.33 -46.53V-61.57L77.47 -72.75ZM130.48 -52.93V-40.09H95.18V-52.93ZM103.28 -66.5H120.22V-17.04Q120.22 -14.75 121.23 -13.75Q122.23 -12.74 124.81 -12.74Q125.89 -12.74 127.62 -12.84Q129.36 -12.94 130.14 -13.04L131.11 -0.29Q129.11 0.1 126.43 0.22Q123.74 0.34 121.1 0.34Q112.07 0.34 107.68 -3.42Q103.28 -7.18 103.28 -14.79Z"/></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 232.19 94.04"><g transform="translate(-22.77 -16.35) scale(3.3)"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></g><path transform="translate(101.08 72.75)" fill="#ededef" d="M30.42 21.29Q22.8 21.29 17.5 19.26Q12.21 17.24 9.16 13.67Q6.1 10.11 5.22 5.42L20.75 4.1Q21.19 5.66 22.46 6.86Q23.73 8.06 25.71 8.74Q27.69 9.42 30.37 9.42Q35.3 9.42 37.89 6.93Q40.48 4.44 40.48 -0.59V-9.28H39.89Q38.72 -6.54 36.65 -4.57Q34.57 -2.59 31.67 -1.56Q28.76 -0.54 25.1 -0.54Q18.7 -0.54 13.7 -3.64Q8.69 -6.74 5.83 -12.6Q2.98 -18.46 2.98 -26.76Q2.98 -35.3 5.91 -41.36Q8.84 -47.41 13.82 -50.63Q18.8 -53.86 25 -53.86Q28.81 -53.86 31.71 -52.66Q34.62 -51.46 36.77 -49.41Q38.92 -47.36 40.23 -44.73H40.48V-52.93H57.23V-2.1Q57.23 5.91 53.91 11.08Q50.59 16.26 44.56 18.77Q38.53 21.29 30.42 21.29ZM30.32 -13.38Q33.54 -13.38 35.89 -15.01Q38.23 -16.65 39.53 -19.7Q40.82 -22.75 40.82 -26.95Q40.82 -31.15 39.53 -34.23Q38.23 -37.3 35.89 -38.99Q33.54 -40.67 30.32 -40.67Q27.15 -40.67 24.88 -38.99Q22.61 -37.3 21.41 -34.23Q20.21 -31.15 20.21 -26.95Q20.21 -22.71 21.41 -19.65Q22.61 -16.6 24.88 -14.99Q27.15 -13.38 30.32 -13.38ZM94.12 -72.75V0H77.08V-57.37H76.84L60.33 -46.53V-61.57L77.47 -72.75ZM130.48 -52.93V-40.09H95.18V-52.93ZM103.28 -66.5H120.22V-17.04Q120.22 -14.75 121.23 -13.75Q122.23 -12.74 124.81 -12.74Q125.89 -12.74 127.62 -12.84Q129.36 -12.94 130.14 -13.04L131.11 -0.29Q129.11 0.1 126.43 0.22Q123.74 0.34 121.1 0.34Q112.07 0.34 107.68 -3.42Q103.28 -7.18 103.28 -14.79Z"/></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#6b56e8" fill-opacity="0.4"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#6b56e8" fill-opacity="0.75"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#161618"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#161618" stroke-width="4.6" stroke-linecap="round"/></g></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><mask id="cut" maskUnits="userSpaceOnUse" x="0" y="0" width="16" height="16"><rect width="16" height="16" fill="#fff"/><path d="M10.5 3.5 8.5 5.4" stroke="#000" stroke-width="3.6" stroke-linecap="round"/></mask><g mask="url(#cut)"><rect x="3" y="5.5" width="2" height="8.5" rx="1" fill="#b6a8ff" fill-opacity="0.5"/><rect x="6" y="4" width="2" height="10" rx="1" fill="#b6a8ff" fill-opacity="0.85"/></g><rect x="9" y="2" width="3" height="12" rx="1.5" fill="#ededef"/><path d="M10.5 3.5 8.5 5.4" fill="none" stroke="#ededef" stroke-width="2.2" stroke-linecap="round"/></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></svg> |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 630"><rect width="1200" height="630" fill="#0f0f11"/><g fill="#2a2a30"><circle cx="20" cy="15" r="1.4"/><circle cx="20" cy="55" r="1.4"/><circle cx="20" cy="95" r="1.4"/><circle cx="20" cy="135" r="1.4"/><circle cx="20" cy="175" r="1.4"/><circle cx="20" cy="215" r="1.4"/><circle cx="20" cy="255" r="1.4"/><circle cx="20" cy="295" r="1.4"/><circle cx="20" cy="335" r="1.4"/><circle cx="20" cy="375" r="1.4"/><circle cx="20" cy="415" r="1.4"/><circle cx="20" cy="455" r="1.4"/><circle cx="20" cy="495" r="1.4"/><circle cx="20" cy="535" r="1.4"/><circle cx="20" cy="575" r="1.4"/><circle cx="20" cy="615" r="1.4"/><circle cx="60" cy="15" r="1.4"/><circle cx="60" cy="55" r="1.4"/><circle cx="60" cy="95" r="1.4"/><circle cx="60" cy="135" r="1.4"/><circle cx="60" cy="175" r="1.4"/><circle cx="60" cy="215" r="1.4"/><circle cx="60" cy="255" r="1.4"/><circle cx="60" cy="295" r="1.4"/><circle cx="60" cy="335" r="1.4"/><circle cx="60" cy="375" r="1.4"/><circle cx="60" cy="415" r="1.4"/><circle cx="60" cy="455" r="1.4"/><circle cx="60" cy="495" r="1.4"/><circle cx="60" cy="535" r="1.4"/><circle cx="60" cy="575" r="1.4"/><circle cx="60" cy="615" r="1.4"/><circle cx="100" cy="15" r="1.4"/><circle cx="100" cy="55" r="1.4"/><circle cx="100" cy="95" r="1.4"/><circle cx="100" cy="135" r="1.4"/><circle cx="100" cy="175" r="1.4"/><circle cx="100" cy="215" r="1.4"/><circle cx="100" cy="255" r="1.4"/><circle cx="100" cy="295" r="1.4"/><circle cx="100" cy="335" r="1.4"/><circle cx="100" cy="375" r="1.4"/><circle cx="100" cy="415" r="1.4"/><circle cx="100" cy="455" r="1.4"/><circle cx="100" cy="495" r="1.4"/><circle cx="100" cy="535" r="1.4"/><circle cx="100" cy="575" r="1.4"/><circle cx="100" cy="615" r="1.4"/><circle cx="140" cy="15" r="1.4"/><circle cx="140" cy="55" r="1.4"/><circle cx="140" cy="95" r="1.4"/><circle cx="140" cy="135" r="1.4"/><circle cx="140" cy="175" r="1.4"/><circle cx="140" cy="215" r="1.4"/><circle cx="140" cy="255" r="1.4"/><circle cx="140" cy="295" r="1.4"/><circle cx="140" cy="335" r="1.4"/><circle cx="140" cy="375" r="1.4"/><circle cx="140" cy="415" r="1.4"/><circle cx="140" cy="455" r="1.4"/><circle cx="140" cy="495" r="1.4"/><circle cx="140" cy="535" r="1.4"/><circle cx="140" cy="575" r="1.4"/><circle cx="140" cy="615" r="1.4"/><circle cx="180" cy="15" r="1.4"/><circle cx="180" cy="55" r="1.4"/><circle cx="180" cy="95" r="1.4"/><circle cx="180" cy="135" r="1.4"/><circle cx="180" cy="175" r="1.4"/><circle cx="180" cy="215" r="1.4"/><circle cx="180" cy="255" r="1.4"/><circle cx="180" cy="295" r="1.4"/><circle cx="180" cy="335" r="1.4"/><circle cx="180" cy="375" r="1.4"/><circle cx="180" cy="415" r="1.4"/><circle cx="180" cy="455" r="1.4"/><circle cx="180" cy="495" r="1.4"/><circle cx="180" cy="535" r="1.4"/><circle cx="180" cy="575" r="1.4"/><circle cx="180" cy="615" r="1.4"/><circle cx="220" cy="15" r="1.4"/><circle cx="220" cy="55" r="1.4"/><circle cx="220" cy="95" r="1.4"/><circle cx="220" cy="135" r="1.4"/><circle cx="220" cy="175" r="1.4"/><circle cx="220" cy="215" r="1.4"/><circle cx="220" cy="255" r="1.4"/><circle cx="220" cy="295" r="1.4"/><circle cx="220" cy="335" r="1.4"/><circle cx="220" cy="375" r="1.4"/><circle cx="220" cy="415" r="1.4"/><circle cx="220" cy="455" r="1.4"/><circle cx="220" cy="495" r="1.4"/><circle cx="220" cy="535" r="1.4"/><circle cx="220" cy="575" r="1.4"/><circle cx="220" cy="615" r="1.4"/><circle cx="260" cy="15" r="1.4"/><circle cx="260" cy="55" r="1.4"/><circle cx="260" cy="95" r="1.4"/><circle cx="260" cy="135" r="1.4"/><circle cx="260" cy="175" r="1.4"/><circle cx="260" cy="215" r="1.4"/><circle cx="260" cy="255" r="1.4"/><circle cx="260" cy="295" r="1.4"/><circle cx="260" cy="335" r="1.4"/><circle cx="260" cy="375" r="1.4"/><circle cx="260" cy="415" r="1.4"/><circle cx="260" cy="455" r="1.4"/><circle cx="260" cy="495" r="1.4"/><circle cx="260" cy="535" r="1.4"/><circle cx="260" cy="575" r="1.4"/><circle cx="260" cy="615" r="1.4"/><circle cx="300" cy="15" r="1.4"/><circle cx="300" cy="55" r="1.4"/><circle cx="300" cy="95" r="1.4"/><circle cx="300" cy="135" r="1.4"/><circle cx="300" cy="175" r="1.4"/><circle cx="300" cy="215" r="1.4"/><circle cx="300" cy="255" r="1.4"/><circle cx="300" cy="295" r="1.4"/><circle cx="300" cy="335" r="1.4"/><circle cx="300" cy="375" r="1.4"/><circle cx="300" cy="415" r="1.4"/><circle cx="300" cy="455" r="1.4"/><circle cx="300" cy="495" r="1.4"/><circle cx="300" cy="535" r="1.4"/><circle cx="300" cy="575" r="1.4"/><circle cx="300" cy="615" r="1.4"/><circle cx="340" cy="15" r="1.4"/><circle cx="340" cy="55" r="1.4"/><circle cx="340" cy="95" r="1.4"/><circle cx="340" cy="135" r="1.4"/><circle cx="340" cy="175" r="1.4"/><circle cx="340" cy="215" r="1.4"/><circle cx="340" cy="255" r="1.4"/><circle cx="340" cy="295" r="1.4"/><circle cx="340" cy="335" r="1.4"/><circle cx="340" cy="375" r="1.4"/><circle cx="340" cy="415" r="1.4"/><circle cx="340" cy="455" r="1.4"/><circle cx="340" cy="495" r="1.4"/><circle cx="340" cy="535" r="1.4"/><circle cx="340" cy="575" r="1.4"/><circle cx="340" cy="615" r="1.4"/><circle cx="380" cy="15" r="1.4"/><circle cx="380" cy="55" r="1.4"/><circle cx="380" cy="95" r="1.4"/><circle cx="380" cy="135" r="1.4"/><circle cx="380" cy="175" r="1.4"/><circle cx="380" cy="215" r="1.4"/><circle cx="380" cy="255" r="1.4"/><circle cx="380" cy="295" r="1.4"/><circle cx="380" cy="335" r="1.4"/><circle cx="380" cy="375" r="1.4"/><circle cx="380" cy="415" r="1.4"/><circle cx="380" cy="455" r="1.4"/><circle cx="380" cy="495" r="1.4"/><circle cx="380" cy="535" r="1.4"/><circle cx="380" cy="575" r="1.4"/><circle cx="380" cy="615" r="1.4"/><circle cx="420" cy="15" r="1.4"/><circle cx="420" cy="55" r="1.4"/><circle cx="420" cy="95" r="1.4"/><circle cx="420" cy="135" r="1.4"/><circle cx="420" cy="175" r="1.4"/><circle cx="420" cy="215" r="1.4"/><circle cx="420" cy="255" r="1.4"/><circle cx="420" cy="295" r="1.4"/><circle cx="420" cy="335" r="1.4"/><circle cx="420" cy="375" r="1.4"/><circle cx="420" cy="415" r="1.4"/><circle cx="420" cy="455" r="1.4"/><circle cx="420" cy="495" r="1.4"/><circle cx="420" cy="535" r="1.4"/><circle cx="420" cy="575" r="1.4"/><circle cx="420" cy="615" r="1.4"/><circle cx="460" cy="15" r="1.4"/><circle cx="460" cy="55" r="1.4"/><circle cx="460" cy="95" r="1.4"/><circle cx="460" cy="135" r="1.4"/><circle cx="460" cy="175" r="1.4"/><circle cx="460" cy="215" r="1.4"/><circle cx="460" cy="255" r="1.4"/><circle cx="460" cy="295" r="1.4"/><circle cx="460" cy="335" r="1.4"/><circle cx="460" cy="375" r="1.4"/><circle cx="460" cy="415" r="1.4"/><circle cx="460" cy="455" r="1.4"/><circle cx="460" cy="495" r="1.4"/><circle cx="460" cy="535" r="1.4"/><circle cx="460" cy="575" r="1.4"/><circle cx="460" cy="615" r="1.4"/><circle cx="500" cy="15" r="1.4"/><circle cx="500" cy="55" r="1.4"/><circle cx="500" cy="95" r="1.4"/><circle cx="500" cy="135" r="1.4"/><circle cx="500" cy="175" r="1.4"/><circle cx="500" cy="215" r="1.4"/><circle cx="500" cy="255" r="1.4"/><circle cx="500" cy="295" r="1.4"/><circle cx="500" cy="335" r="1.4"/><circle cx="500" cy="375" r="1.4"/><circle cx="500" cy="415" r="1.4"/><circle cx="500" cy="455" r="1.4"/><circle cx="500" cy="495" r="1.4"/><circle cx="500" cy="535" r="1.4"/><circle cx="500" cy="575" r="1.4"/><circle cx="500" cy="615" r="1.4"/><circle cx="540" cy="15" r="1.4"/><circle cx="540" cy="55" r="1.4"/><circle cx="540" cy="95" r="1.4"/><circle cx="540" cy="135" r="1.4"/><circle cx="540" cy="175" r="1.4"/><circle cx="540" cy="215" r="1.4"/><circle cx="540" cy="255" r="1.4"/><circle cx="540" cy="295" r="1.4"/><circle cx="540" cy="335" r="1.4"/><circle cx="540" cy="375" r="1.4"/><circle cx="540" cy="415" r="1.4"/><circle cx="540" cy="455" r="1.4"/><circle cx="540" cy="495" r="1.4"/><circle cx="540" cy="535" r="1.4"/><circle cx="540" cy="575" r="1.4"/><circle cx="540" cy="615" r="1.4"/><circle cx="580" cy="15" r="1.4"/><circle cx="580" cy="55" r="1.4"/><circle cx="580" cy="95" r="1.4"/><circle cx="580" cy="135" r="1.4"/><circle cx="580" cy="175" r="1.4"/><circle cx="580" cy="215" r="1.4"/><circle cx="580" cy="255" r="1.4"/><circle cx="580" cy="295" r="1.4"/><circle cx="580" cy="335" r="1.4"/><circle cx="580" cy="375" r="1.4"/><circle cx="580" cy="415" r="1.4"/><circle cx="580" cy="455" r="1.4"/><circle cx="580" cy="495" r="1.4"/><circle cx="580" cy="535" r="1.4"/><circle cx="580" cy="575" r="1.4"/><circle cx="580" cy="615" r="1.4"/><circle cx="620" cy="15" r="1.4"/><circle cx="620" cy="55" r="1.4"/><circle cx="620" cy="95" r="1.4"/><circle cx="620" cy="135" r="1.4"/><circle cx="620" cy="175" r="1.4"/><circle cx="620" cy="215" r="1.4"/><circle cx="620" cy="255" r="1.4"/><circle cx="620" cy="295" r="1.4"/><circle cx="620" cy="335" r="1.4"/><circle cx="620" cy="375" r="1.4"/><circle cx="620" cy="415" r="1.4"/><circle cx="620" cy="455" r="1.4"/><circle cx="620" cy="495" r="1.4"/><circle cx="620" cy="535" r="1.4"/><circle cx="620" cy="575" r="1.4"/><circle cx="620" cy="615" r="1.4"/><circle cx="660" cy="15" r="1.4"/><circle cx="660" cy="55" r="1.4"/><circle cx="660" cy="95" r="1.4"/><circle cx="660" cy="135" r="1.4"/><circle cx="660" cy="175" r="1.4"/><circle cx="660" cy="215" r="1.4"/><circle cx="660" cy="255" r="1.4"/><circle cx="660" cy="295" r="1.4"/><circle cx="660" cy="335" r="1.4"/><circle cx="660" cy="375" r="1.4"/><circle cx="660" cy="415" r="1.4"/><circle cx="660" cy="455" r="1.4"/><circle cx="660" cy="495" r="1.4"/><circle cx="660" cy="535" r="1.4"/><circle cx="660" cy="575" r="1.4"/><circle cx="660" cy="615" r="1.4"/><circle cx="700" cy="15" r="1.4"/><circle cx="700" cy="55" r="1.4"/><circle cx="700" cy="95" r="1.4"/><circle cx="700" cy="135" r="1.4"/><circle cx="700" cy="175" r="1.4"/><circle cx="700" cy="215" r="1.4"/><circle cx="700" cy="255" r="1.4"/><circle cx="700" cy="295" r="1.4"/><circle cx="700" cy="335" r="1.4"/><circle cx="700" cy="375" r="1.4"/><circle cx="700" cy="415" r="1.4"/><circle cx="700" cy="455" r="1.4"/><circle cx="700" cy="495" r="1.4"/><circle cx="700" cy="535" r="1.4"/><circle cx="700" cy="575" r="1.4"/><circle cx="700" cy="615" r="1.4"/><circle cx="740" cy="15" r="1.4"/><circle cx="740" cy="55" r="1.4"/><circle cx="740" cy="95" r="1.4"/><circle cx="740" cy="135" r="1.4"/><circle cx="740" cy="175" r="1.4"/><circle cx="740" cy="215" r="1.4"/><circle cx="740" cy="255" r="1.4"/><circle cx="740" cy="295" r="1.4"/><circle cx="740" cy="335" r="1.4"/><circle cx="740" cy="375" r="1.4"/><circle cx="740" cy="415" r="1.4"/><circle cx="740" cy="455" r="1.4"/><circle cx="740" cy="495" r="1.4"/><circle cx="740" cy="535" r="1.4"/><circle cx="740" cy="575" r="1.4"/><circle cx="740" cy="615" r="1.4"/><circle cx="780" cy="15" r="1.4"/><circle cx="780" cy="55" r="1.4"/><circle cx="780" cy="95" r="1.4"/><circle cx="780" cy="135" r="1.4"/><circle cx="780" cy="175" r="1.4"/><circle cx="780" cy="215" r="1.4"/><circle cx="780" cy="255" r="1.4"/><circle cx="780" cy="295" r="1.4"/><circle cx="780" cy="335" r="1.4"/><circle cx="780" cy="375" r="1.4"/><circle cx="780" cy="415" r="1.4"/><circle cx="780" cy="455" r="1.4"/><circle cx="780" cy="495" r="1.4"/><circle cx="780" cy="535" r="1.4"/><circle cx="780" cy="575" r="1.4"/><circle cx="780" cy="615" r="1.4"/><circle cx="820" cy="15" r="1.4"/><circle cx="820" cy="55" r="1.4"/><circle cx="820" cy="95" r="1.4"/><circle cx="820" cy="135" r="1.4"/><circle cx="820" cy="175" r="1.4"/><circle cx="820" cy="215" r="1.4"/><circle cx="820" cy="255" r="1.4"/><circle cx="820" cy="295" r="1.4"/><circle cx="820" cy="335" r="1.4"/><circle cx="820" cy="375" r="1.4"/><circle cx="820" cy="415" r="1.4"/><circle cx="820" cy="455" r="1.4"/><circle cx="820" cy="495" r="1.4"/><circle cx="820" cy="535" r="1.4"/><circle cx="820" cy="575" r="1.4"/><circle cx="820" cy="615" r="1.4"/><circle cx="860" cy="15" r="1.4"/><circle cx="860" cy="55" r="1.4"/><circle cx="860" cy="95" r="1.4"/><circle cx="860" cy="135" r="1.4"/><circle cx="860" cy="175" r="1.4"/><circle cx="860" cy="215" r="1.4"/><circle cx="860" cy="255" r="1.4"/><circle cx="860" cy="295" r="1.4"/><circle cx="860" cy="335" r="1.4"/><circle cx="860" cy="375" r="1.4"/><circle cx="860" cy="415" r="1.4"/><circle cx="860" cy="455" r="1.4"/><circle cx="860" cy="495" r="1.4"/><circle cx="860" cy="535" r="1.4"/><circle cx="860" cy="575" r="1.4"/><circle cx="860" cy="615" r="1.4"/><circle cx="900" cy="15" r="1.4"/><circle cx="900" cy="55" r="1.4"/><circle cx="900" cy="95" r="1.4"/><circle cx="900" cy="135" r="1.4"/><circle cx="900" cy="175" r="1.4"/><circle cx="900" cy="215" r="1.4"/><circle cx="900" cy="255" r="1.4"/><circle cx="900" cy="295" r="1.4"/><circle cx="900" cy="335" r="1.4"/><circle cx="900" cy="375" r="1.4"/><circle cx="900" cy="415" r="1.4"/><circle cx="900" cy="455" r="1.4"/><circle cx="900" cy="495" r="1.4"/><circle cx="900" cy="535" r="1.4"/><circle cx="900" cy="575" r="1.4"/><circle cx="900" cy="615" r="1.4"/><circle cx="940" cy="15" r="1.4"/><circle cx="940" cy="55" r="1.4"/><circle cx="940" cy="95" r="1.4"/><circle cx="940" cy="135" r="1.4"/><circle cx="940" cy="175" r="1.4"/><circle cx="940" cy="215" r="1.4"/><circle cx="940" cy="255" r="1.4"/><circle cx="940" cy="295" r="1.4"/><circle cx="940" cy="335" r="1.4"/><circle cx="940" cy="375" r="1.4"/><circle cx="940" cy="415" r="1.4"/><circle cx="940" cy="455" r="1.4"/><circle cx="940" cy="495" r="1.4"/><circle cx="940" cy="535" r="1.4"/><circle cx="940" cy="575" r="1.4"/><circle cx="940" cy="615" r="1.4"/><circle cx="980" cy="15" r="1.4"/><circle cx="980" cy="55" r="1.4"/><circle cx="980" cy="95" r="1.4"/><circle cx="980" cy="135" r="1.4"/><circle cx="980" cy="175" r="1.4"/><circle cx="980" cy="215" r="1.4"/><circle cx="980" cy="255" r="1.4"/><circle cx="980" cy="295" r="1.4"/><circle cx="980" cy="335" r="1.4"/><circle cx="980" cy="375" r="1.4"/><circle cx="980" cy="415" r="1.4"/><circle cx="980" cy="455" r="1.4"/><circle cx="980" cy="495" r="1.4"/><circle cx="980" cy="535" r="1.4"/><circle cx="980" cy="575" r="1.4"/><circle cx="980" cy="615" r="1.4"/><circle cx="1020" cy="15" r="1.4"/><circle cx="1020" cy="55" r="1.4"/><circle cx="1020" cy="95" r="1.4"/><circle cx="1020" cy="135" r="1.4"/><circle cx="1020" cy="175" r="1.4"/><circle cx="1020" cy="215" r="1.4"/><circle cx="1020" cy="255" r="1.4"/><circle cx="1020" cy="295" r="1.4"/><circle cx="1020" cy="335" r="1.4"/><circle cx="1020" cy="375" r="1.4"/><circle cx="1020" cy="415" r="1.4"/><circle cx="1020" cy="455" r="1.4"/><circle cx="1020" cy="495" r="1.4"/><circle cx="1020" cy="535" r="1.4"/><circle cx="1020" cy="575" r="1.4"/><circle cx="1020" cy="615" r="1.4"/><circle cx="1060" cy="15" r="1.4"/><circle cx="1060" cy="55" r="1.4"/><circle cx="1060" cy="95" r="1.4"/><circle cx="1060" cy="135" r="1.4"/><circle cx="1060" cy="175" r="1.4"/><circle cx="1060" cy="215" r="1.4"/><circle cx="1060" cy="255" r="1.4"/><circle cx="1060" cy="295" r="1.4"/><circle cx="1060" cy="335" r="1.4"/><circle cx="1060" cy="375" r="1.4"/><circle cx="1060" cy="415" r="1.4"/><circle cx="1060" cy="455" r="1.4"/><circle cx="1060" cy="495" r="1.4"/><circle cx="1060" cy="535" r="1.4"/><circle cx="1060" cy="575" r="1.4"/><circle cx="1060" cy="615" r="1.4"/><circle cx="1100" cy="15" r="1.4"/><circle cx="1100" cy="55" r="1.4"/><circle cx="1100" cy="95" r="1.4"/><circle cx="1100" cy="135" r="1.4"/><circle cx="1100" cy="175" r="1.4"/><circle cx="1100" cy="215" r="1.4"/><circle cx="1100" cy="255" r="1.4"/><circle cx="1100" cy="295" r="1.4"/><circle cx="1100" cy="335" r="1.4"/><circle cx="1100" cy="375" r="1.4"/><circle cx="1100" cy="415" r="1.4"/><circle cx="1100" cy="455" r="1.4"/><circle cx="1100" cy="495" r="1.4"/><circle cx="1100" cy="535" r="1.4"/><circle cx="1100" cy="575" r="1.4"/><circle cx="1100" cy="615" r="1.4"/><circle cx="1140" cy="15" r="1.4"/><circle cx="1140" cy="55" r="1.4"/><circle cx="1140" cy="95" r="1.4"/><circle cx="1140" cy="135" r="1.4"/><circle cx="1140" cy="175" r="1.4"/><circle cx="1140" cy="215" r="1.4"/><circle cx="1140" cy="255" r="1.4"/><circle cx="1140" cy="295" r="1.4"/><circle cx="1140" cy="335" r="1.4"/><circle cx="1140" cy="375" r="1.4"/><circle cx="1140" cy="415" r="1.4"/><circle cx="1140" cy="455" r="1.4"/><circle cx="1140" cy="495" r="1.4"/><circle cx="1140" cy="535" r="1.4"/><circle cx="1140" cy="575" r="1.4"/><circle cx="1140" cy="615" r="1.4"/><circle cx="1180" cy="15" r="1.4"/><circle cx="1180" cy="55" r="1.4"/><circle cx="1180" cy="95" r="1.4"/><circle cx="1180" cy="135" r="1.4"/><circle cx="1180" cy="175" r="1.4"/><circle cx="1180" cy="215" r="1.4"/><circle cx="1180" cy="255" r="1.4"/><circle cx="1180" cy="295" r="1.4"/><circle cx="1180" cy="335" r="1.4"/><circle cx="1180" cy="375" r="1.4"/><circle cx="1180" cy="415" r="1.4"/><circle cx="1180" cy="455" r="1.4"/><circle cx="1180" cy="495" r="1.4"/><circle cx="1180" cy="535" r="1.4"/><circle cx="1180" cy="575" r="1.4"/><circle cx="1180" cy="615" r="1.4"/></g><g transform="translate(379.41 160.66) scale(1.9)"><g transform="translate(-22.77 -16.35) scale(3.3)"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></g><path transform="translate(101.08 72.75)" fill="#ededef" d="M30.42 21.29Q22.8 21.29 17.5 19.26Q12.21 17.24 9.16 13.67Q6.1 10.11 5.22 5.42L20.75 4.1Q21.19 5.66 22.46 6.86Q23.73 8.06 25.71 8.74Q27.69 9.42 30.37 9.42Q35.3 9.42 37.89 6.93Q40.48 4.44 40.48 -0.59V-9.28H39.89Q38.72 -6.54 36.65 -4.57Q34.57 -2.59 31.67 -1.56Q28.76 -0.54 25.1 -0.54Q18.7 -0.54 13.7 -3.64Q8.69 -6.74 5.83 -12.6Q2.98 -18.46 2.98 -26.76Q2.98 -35.3 5.91 -41.36Q8.84 -47.41 13.82 -50.63Q18.8 -53.86 25 -53.86Q28.81 -53.86 31.71 -52.66Q34.62 -51.46 36.77 -49.41Q38.92 -47.36 40.23 -44.73H40.48V-52.93H57.23V-2.1Q57.23 5.91 53.91 11.08Q50.59 16.26 44.56 18.77Q38.53 21.29 30.42 21.29ZM30.32 -13.38Q33.54 -13.38 35.89 -15.01Q38.23 -16.65 39.53 -19.7Q40.82 -22.75 40.82 -26.95Q40.82 -31.15 39.53 -34.23Q38.23 -37.3 35.89 -38.99Q33.54 -40.67 30.32 -40.67Q27.15 -40.67 24.88 -38.99Q22.61 -37.3 21.41 -34.23Q20.21 -31.15 20.21 -26.95Q20.21 -22.71 21.41 -19.65Q22.61 -16.6 24.88 -14.99Q27.15 -13.38 30.32 -13.38ZM94.12 -72.75V0H77.08V-57.37H76.84L60.33 -46.53V-61.57L77.47 -72.75ZM130.48 -52.93V-40.09H95.18V-52.93ZM103.28 -66.5H120.22V-17.04Q120.22 -14.75 121.23 -13.75Q122.23 -12.74 124.81 -12.74Q125.89 -12.74 127.62 -12.84Q129.36 -12.94 130.14 -13.04L131.11 -0.29Q129.11 0.1 126.43 0.22Q123.74 0.34 121.1 0.34Q112.07 0.34 107.68 -3.42Q103.28 -7.18 103.28 -14.79Z"/></g><text x="600" y="470" text-anchor="middle" font-family="Inter, ui-sans-serif, system-ui, sans-serif" font-size="40" font-weight="500" fill="#a0a0a8" letter-spacing="-0.5">A git forge for agents</text><text x="600" y="560" text-anchor="middle" font-family="JetBrains Mono, ui-monospace, Consolas, monospace" font-size="26" fill="#b6a8ff">g1t.sh</text></svg> |
| 52 | 52 | }, | |
| 53 | 53 | lastUpdated: true, | |
| 54 | 54 | head: [ | |
| 55 | + | { tag: 'link', attrs: { rel: 'icon', href: '/favicon.ico', sizes: '32x32' } }, | |
| 56 | + | { tag: 'link', attrs: { rel: 'icon', type: 'image/png', sizes: '192x192', href: '/icon-192.png' } }, | |
| 57 | + | { tag: 'link', attrs: { rel: 'apple-touch-icon', href: '/apple-touch-icon.png' } }, | |
| 55 | 58 | { tag: 'link', attrs: { rel: 'preconnect', href: 'https://fonts.googleapis.com' } }, | |
| 56 | 59 | { | |
| 57 | 60 | tag: 'link', |
Binary or large file; its contents are not shown.
Binary or large file; its contents are not shown.
| 1 | − | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"> | |
| 2 | − | <rect width="32" height="32" rx="7" fill="#161618"/> | |
| 3 | − | <g transform="translate(4.5 4.6) scale(0.72)"> | |
| 4 | − | <path d="M16 2.5 28 9.4 16 16.3 4 9.4Z" fill="#ededef"/> | |
| 5 | − | <path d="M4 10.9 15.3 17.4V30.2L4 23.7Z" fill="#ededef" fill-opacity="0.55"/> | |
| 6 | − | <path d="M28 10.9 16.7 17.4V30.2L28 23.7Z" fill="#ededef" fill-opacity="0.25"/> | |
| 7 | − | </g> | |
| 8 | − | </svg> | |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><style>.f{fill:#161618}.f.s{fill:none;stroke:#161618}.m{fill:#6b56e8}@media (prefers-color-scheme: dark){.f{fill:#ededef}.f.s{fill:none;stroke:#ededef}.m{fill:#b6a8ff}}</style><mask id="cut" maskUnits="userSpaceOnUse" x="0" y="0" width="16" height="16"><rect width="16" height="16" fill="#fff"/><path d="M10.5 3.5 8.5 5.4" stroke="#000" stroke-width="3.6" stroke-linecap="round"/></mask><g mask="url(#cut)"><rect class="m" x="3" y="5.5" width="2" height="8.5" rx="1" fill-opacity="0.5"/><rect class="m" x="6" y="4" width="2" height="10" rx="1" fill-opacity="0.85"/></g><rect class="f" x="9" y="2" width="3" height="12" rx="1.5"/><path class="f s" d="M10.5 3.5 8.5 5.4" stroke-width="2.2" stroke-linecap="round"/></svg> |
Binary or large file; its contents are not shown.
Binary or large file; its contents are not shown.
| 1 | 1 | --- | |
| 2 | − | // The cube, the name and "Docs": the same mark as g1t.sh, so the two read | |
| 2 | + | // The fleet, the name and "Docs": the same mark as g1t.sh, so the two read | |
| 3 | 3 | // as one product. | |
| 4 | 4 | --- | |
| 5 | 5 | ||
| 6 | 6 | <a href="/" class="g1t-title" aria-label="g1t docs home"> | |
| 7 | 7 | <svg viewBox="0 0 32 32" aria-hidden="true"> | |
| 8 | − | <path d="M16 2.5 28 9.4 16 16.3 4 9.4Z" fill="currentColor"></path> | |
| 9 | − | <path d="M4 10.9 15.3 17.4V30.2L4 23.7Z" fill="currentColor" fill-opacity="0.55"></path> | |
| 10 | − | <path d="M28 10.9 16.7 17.4V30.2L28 23.7Z" fill="currentColor" fill-opacity="0.25"></path> | |
| 8 | + | <g transform="translate(0.7 0.5)"> | |
| 9 | + | <rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="var(--g1t-merged)" fill-opacity="0.35"></rect> | |
| 10 | + | <rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="var(--g1t-merged)" fill-opacity="0.65"></rect> | |
| 11 | + | <rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="currentColor"></rect> | |
| 12 | + | <path d="M21.7 7.2 17.6 10.9" fill="none" stroke="currentColor" stroke-width="4.6" stroke-linecap="round"></path> | |
| 13 | + | </g> | |
| 11 | 14 | </svg> | |
| 12 | 15 | <span class="g1t-title-name">g1t</span> | |
| 13 | 16 | <span class="g1t-title-docs">Docs</span> |
| 24 | 24 | name="description" | |
| 25 | 25 | content="Every g1t API endpoint, with an explorer to call them from the page." | |
| 26 | 26 | /> | |
| 27 | + | <link rel="icon" href="/favicon.ico" sizes="32x32" /> | |
| 27 | 28 | <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> | |
| 29 | + | <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> | |
| 28 | 30 | <link rel="canonical" href="https://docs.g1t.sh/api/reference/" /> | |
| 29 | 31 | <link rel="preconnect" href="https://fonts.googleapis.com" /> | |
| 30 | 32 | <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> |
| 1 | 1 | /** | |
| 2 | − | * g1t's mark: an isometric cube, the unit of work in its artwork. Three | |
| 3 | − | * faces in three tones of the text colour, split by hairline gaps, so it | |
| 4 | − | * holds at any size and on any background. | |
| 2 | + | * g1t's mark, "the fleet": three 1s stepping back in depth, the agents at | |
| 3 | + | * work behind the one change in front. The front 1 takes the text colour; | |
| 4 | + | * the two behind it fade into lavender. The same shapes as the favicon and | |
| 5 | + | * the brand files in .g1t/brand and public/brand. | |
| 5 | 6 | */ | |
| 6 | 7 | export function Mark({ className }: { className?: string }) { | |
| 7 | 8 | return ( | |
| 8 | 9 | <svg viewBox="0 0 32 32" className={className} aria-hidden="true"> | |
| 9 | − | {/* Top face */} | |
| 10 | − | <path d="M16 2.5 28 9.4 16 16.3 4 9.4Z" fill="currentColor" /> | |
| 11 | − | {/* Left face */} | |
| 12 | − | <path d="M4 10.9 15.3 17.4V30.2L4 23.7Z" fill="currentColor" fillOpacity="0.55" /> | |
| 13 | − | {/* Right face */} | |
| 14 | − | <path d="M28 10.9 16.7 17.4V30.2L28 23.7Z" fill="currentColor" fillOpacity="0.25" /> | |
| 10 | + | <g transform="translate(0.7 0.5)"> | |
| 11 | + | {/* The agents behind */} | |
| 12 | + | <rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="var(--g1t-merged)" fillOpacity="0.35" /> | |
| 13 | + | <rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="var(--g1t-merged)" fillOpacity="0.65" /> | |
| 14 | + | {/* The 1 in front */} | |
| 15 | + | <rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="currentColor" /> | |
| 16 | + | <path d="M21.7 7.2 17.6 10.9" fill="none" stroke="currentColor" strokeWidth="4.6" strokeLinecap="round" /> | |
| 17 | + | </g> | |
| 15 | 18 | </svg> | |
| 16 | 19 | ); | |
| 17 | 20 | } |
| 41 | 41 | import { getViewer, roleIn, viewerMiddleware } from "./lib/session.server"; | |
| 42 | 42 | ||
| 43 | 43 | export const links: Route.LinksFunction = () => [ | |
| 44 | + | { rel: "icon", href: "/favicon.ico", sizes: "32x32" }, | |
| 44 | 45 | { rel: "icon", type: "image/svg+xml", href: "/favicon.svg" }, | |
| 46 | + | { rel: "icon", type: "image/png", sizes: "192x192", href: "/icon-192.png" }, | |
| 47 | + | { rel: "apple-touch-icon", href: "/apple-touch-icon.png" }, | |
| 45 | 48 | { rel: "preconnect", href: "https://fonts.googleapis.com" }, | |
| 46 | 49 | { | |
| 47 | 50 | rel: "preconnect", |
Binary or large file; its contents are not shown.
Binary or large file; its contents are not shown.
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 232.19 94.04"><g transform="translate(-22.77 -16.35) scale(3.3)"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></g><path transform="translate(101.08 72.75)" fill="#ededef" d="M30.42 21.29Q22.8 21.29 17.5 19.26Q12.21 17.24 9.16 13.67Q6.1 10.11 5.22 5.42L20.75 4.1Q21.19 5.66 22.46 6.86Q23.73 8.06 25.71 8.74Q27.69 9.42 30.37 9.42Q35.3 9.42 37.89 6.93Q40.48 4.44 40.48 -0.59V-9.28H39.89Q38.72 -6.54 36.65 -4.57Q34.57 -2.59 31.67 -1.56Q28.76 -0.54 25.1 -0.54Q18.7 -0.54 13.7 -3.64Q8.69 -6.74 5.83 -12.6Q2.98 -18.46 2.98 -26.76Q2.98 -35.3 5.91 -41.36Q8.84 -47.41 13.82 -50.63Q18.8 -53.86 25 -53.86Q28.81 -53.86 31.71 -52.66Q34.62 -51.46 36.77 -49.41Q38.92 -47.36 40.23 -44.73H40.48V-52.93H57.23V-2.1Q57.23 5.91 53.91 11.08Q50.59 16.26 44.56 18.77Q38.53 21.29 30.42 21.29ZM30.32 -13.38Q33.54 -13.38 35.89 -15.01Q38.23 -16.65 39.53 -19.7Q40.82 -22.75 40.82 -26.95Q40.82 -31.15 39.53 -34.23Q38.23 -37.3 35.89 -38.99Q33.54 -40.67 30.32 -40.67Q27.15 -40.67 24.88 -38.99Q22.61 -37.3 21.41 -34.23Q20.21 -31.15 20.21 -26.95Q20.21 -22.71 21.41 -19.65Q22.61 -16.6 24.88 -14.99Q27.15 -13.38 30.32 -13.38ZM94.12 -72.75V0H77.08V-57.37H76.84L60.33 -46.53V-61.57L77.47 -72.75ZM130.48 -52.93V-40.09H95.18V-52.93ZM103.28 -66.5H120.22V-17.04Q120.22 -14.75 121.23 -13.75Q122.23 -12.74 124.81 -12.74Q125.89 -12.74 127.62 -12.84Q129.36 -12.94 130.14 -13.04L131.11 -0.29Q129.11 0.1 126.43 0.22Q123.74 0.34 121.1 0.34Q112.07 0.34 107.68 -3.42Q103.28 -7.18 103.28 -14.79Z"/></svg> |
Binary or large file; its contents are not shown.
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 232.19 94.04"><g transform="translate(-22.77 -16.35) scale(3.3)"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#6b56e8" fill-opacity="0.4"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#6b56e8" fill-opacity="0.75"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#161618"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#161618" stroke-width="4.6" stroke-linecap="round"/></g></g><path transform="translate(101.08 72.75)" fill="#161618" d="M30.42 21.29Q22.8 21.29 17.5 19.26Q12.21 17.24 9.16 13.67Q6.1 10.11 5.22 5.42L20.75 4.1Q21.19 5.66 22.46 6.86Q23.73 8.06 25.71 8.74Q27.69 9.42 30.37 9.42Q35.3 9.42 37.89 6.93Q40.48 4.44 40.48 -0.59V-9.28H39.89Q38.72 -6.54 36.65 -4.57Q34.57 -2.59 31.67 -1.56Q28.76 -0.54 25.1 -0.54Q18.7 -0.54 13.7 -3.64Q8.69 -6.74 5.83 -12.6Q2.98 -18.46 2.98 -26.76Q2.98 -35.3 5.91 -41.36Q8.84 -47.41 13.82 -50.63Q18.8 -53.86 25 -53.86Q28.81 -53.86 31.71 -52.66Q34.62 -51.46 36.77 -49.41Q38.92 -47.36 40.23 -44.73H40.48V-52.93H57.23V-2.1Q57.23 5.91 53.91 11.08Q50.59 16.26 44.56 18.77Q38.53 21.29 30.42 21.29ZM30.32 -13.38Q33.54 -13.38 35.89 -15.01Q38.23 -16.65 39.53 -19.7Q40.82 -22.75 40.82 -26.95Q40.82 -31.15 39.53 -34.23Q38.23 -37.3 35.89 -38.99Q33.54 -40.67 30.32 -40.67Q27.15 -40.67 24.88 -38.99Q22.61 -37.3 21.41 -34.23Q20.21 -31.15 20.21 -26.95Q20.21 -22.71 21.41 -19.65Q22.61 -16.6 24.88 -14.99Q27.15 -13.38 30.32 -13.38ZM94.12 -72.75V0H77.08V-57.37H76.84L60.33 -46.53V-61.57L77.47 -72.75ZM130.48 -52.93V-40.09H95.18V-52.93ZM103.28 -66.5H120.22V-17.04Q120.22 -14.75 121.23 -13.75Q122.23 -12.74 124.81 -12.74Q125.89 -12.74 127.62 -12.84Q129.36 -12.94 130.14 -13.04L131.11 -0.29Q129.11 0.1 126.43 0.22Q123.74 0.34 121.1 0.34Q112.07 0.34 107.68 -3.42Q103.28 -7.18 103.28 -14.79Z"/></svg> |
Binary or large file; its contents are not shown.
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="7" fill="#0f0f11"/><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></svg> |
Binary or large file; its contents are not shown.
| 1 | − | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"> | |
| 2 | − | <rect width="32" height="32" rx="7" fill="#161618"/> | |
| 3 | − | <g transform="translate(4.5 4.6) scale(0.72)"> | |
| 4 | − | <path d="M16 2.5 28 9.4 16 16.3 4 9.4Z" fill="#ededef"/> | |
| 5 | − | <path d="M4 10.9 15.3 17.4V30.2L4 23.7Z" fill="#ededef" fill-opacity="0.55"/> | |
| 6 | − | <path d="M28 10.9 16.7 17.4V30.2L28 23.7Z" fill="#ededef" fill-opacity="0.25"/> | |
| 7 | − | </g> | |
| 8 | − | </svg> | |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><style>.f{fill:#161618}.f.s{fill:none;stroke:#161618}.m{fill:#6b56e8}@media (prefers-color-scheme: dark){.f{fill:#ededef}.f.s{fill:none;stroke:#ededef}.m{fill:#b6a8ff}}</style><mask id="cut" maskUnits="userSpaceOnUse" x="0" y="0" width="16" height="16"><rect width="16" height="16" fill="#fff"/><path d="M10.5 3.5 8.5 5.4" stroke="#000" stroke-width="3.6" stroke-linecap="round"/></mask><g mask="url(#cut)"><rect class="m" x="3" y="5.5" width="2" height="8.5" rx="1" fill-opacity="0.5"/><rect class="m" x="6" y="4" width="2" height="10" rx="1" fill-opacity="0.85"/></g><rect class="f" x="9" y="2" width="3" height="12" rx="1.5"/><path class="f s" d="M10.5 3.5 8.5 5.4" stroke-width="2.2" stroke-linecap="round"/></svg> |
Binary or large file; its contents are not shown.
Binary or large file; its contents are not shown.
| 1 | − | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"> | |
| 2 | − | <rect width="32" height="32" rx="7" fill="#161618"/> | |
| 3 | − | <g transform="translate(4.5 4.6) scale(0.72)"> | |
| 4 | − | <path d="M16 2.5 28 9.4 16 16.3 4 9.4Z" fill="#ededef"/> | |
| 5 | − | <path d="M4 10.9 15.3 17.4V30.2L4 23.7Z" fill="#ededef" fill-opacity="0.55"/> | |
| 6 | − | <path d="M28 10.9 16.7 17.4V30.2L28 23.7Z" fill="#ededef" fill-opacity="0.25"/> | |
| 7 | − | </g> | |
| 8 | − | </svg> | |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><style>.f{fill:#161618}.f.s{fill:none;stroke:#161618}.m{fill:#6b56e8}@media (prefers-color-scheme: dark){.f{fill:#ededef}.f.s{fill:none;stroke:#ededef}.m{fill:#b6a8ff}}</style><mask id="cut" maskUnits="userSpaceOnUse" x="0" y="0" width="16" height="16"><rect width="16" height="16" fill="#fff"/><path d="M10.5 3.5 8.5 5.4" stroke="#000" stroke-width="3.6" stroke-linecap="round"/></mask><g mask="url(#cut)"><rect class="m" x="3" y="5.5" width="2" height="8.5" rx="1" fill-opacity="0.5"/><rect class="m" x="6" y="4" width="2" height="10" rx="1" fill-opacity="0.85"/></g><rect class="f" x="9" y="2" width="3" height="12" rx="1.5"/><path class="f s" d="M10.5 3.5 8.5 5.4" stroke-width="2.2" stroke-linecap="round"/></svg> |
| 1 | − | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"> | |
| 2 | − | <path d="M16 2.5 28 9.4 16 16.3 4 9.4Z" fill="#ededef"/> | |
| 3 | − | <path d="M4 10.9 15.3 17.4V30.2L4 23.7Z" fill="#ededef" fill-opacity="0.55"/> | |
| 4 | − | <path d="M28 10.9 16.7 17.4V30.2L28 23.7Z" fill="#ededef" fill-opacity="0.25"/> | |
| 5 | − | </svg> | |
| 1 | + | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><g transform="translate(0.7 0.5)"><rect x="6.2" y="9.5" width="4.4" height="17" rx="2.2" fill="#b6a8ff" fill-opacity="0.35"/><rect x="12.4" y="7" width="4.8" height="19.5" rx="2.4" fill="#b6a8ff" fill-opacity="0.65"/><rect x="19" y="4.5" width="5.4" height="22" rx="2.7" fill="#ededef"/><path d="M21.7 7.2 17.6 10.9" fill="none" stroke="#ededef" stroke-width="4.6" stroke-linecap="round"/></g></svg> |
| 33 | 33 | text: format!("{intro}\n\n{action}: {link}\n\n{footer}\n"), | |
| 34 | 34 | html: format!( | |
| 35 | 35 | "<div style=\"font-family:system-ui,sans-serif;max-width:480px;margin:0 auto;padding:32px 16px;color:#16150f\">\ | |
| 36 | − | <p style=\"font-size:20px;font-weight:600;margin:0 0 16px\">g1t</p>\ | |
| 36 | + | <p style=\"margin:0 0 20px\"><img src=\"{SITE}/brand/g1t-logo.png\" width=\"69\" height=\"28\" alt=\"g1t\" style=\"display:block;border:0\"></p>\ | |
| 37 | 37 | <p style=\"font-size:15px;line-height:1.6\">{intro}</p>\ | |
| 38 | 38 | <p style=\"margin:24px 0\"><a href=\"{link}\" style=\"background:#16150f;color:#fff;text-decoration:none;padding:10px 18px;border-radius:6px;font-size:15px\">{action}</a></p>\ | |
| 39 | 39 | <p style=\"font-size:13px;line-height:1.6;color:#6e6a5e\">{footer}</p>\ |