@timebraid/tokens 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -20,7 +20,7 @@ Light is `:root`; dark is `[data-theme="dark"]` on the root element, set by `wat
20
20
  - `tokens/base.css` - element defaults.
21
21
  - `tokens/fonts.css` - font stacks. Currently loads Instrument Sans + JetBrains Mono from Google Fonts; swap for local `@font-face` when licensed files exist.
22
22
  - `tokens/v1/` - the 1.2 theme, kept for one release behind `styles-v1.css`.
23
- - `assets/` - `logo.svg` (64px+), `logo-small.svg` (16/32), PNG exports 16→1024.
23
+ - `assets/` - the stopwatch icon: `logo.svg` (the indigo plate, 64px+), `logo-small.svg` (flat mark below 64px), `mark-transparent.svg`, `mark-mono.svg`, `icon-light.svg`, PNG exports 16 to 1024; see `assets/icon-README.md`. Centred masters since 1.5.0. A PNG export can also be imported directly by path (e.g. `@timebraid/tokens/assets/icon-256.png`) as a plain URL when a consumer needs a static image outside `TLogo`, such as a placeholder avatar photo.
24
24
 
25
25
  ## Rails
26
26
 
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,32 +1,47 @@
1
- # Timebraid - app icon
1
+ # Timebraid app icon
2
2
 
3
- Four white uprights and an amber fifth mark drawn as a growth curve, on a deep indigo
4
- gradient. `TLogo` in `@timebraid/vue` is the only component that renders it.
3
+ A stopwatch on an indigo squircle plate. Brushed-steel case with a knurled bezel, an amber start crown at 12 and two side pushers. The dial is split by a diagonal from bottom-left to top-right: the top-left half is an analog stopwatch face (black hands, amber seconds hand, indigo minute track), the bottom-right half is an LCD stacking the timers being tracked - Design 0:41, Call 1:08, API build 2:14 - growing toward the amber total, 3 timers 3:22. Amber centre pin.
5
4
 
6
- ## Files
7
-
8
- - `logo.svg` - vector master, rounded square with padding. Use for 64 px and up, macOS, Windows and Linux icons.
9
- - `logo-small.svg` - 16 and 32 px artwork. Three uprights instead of four, strokes widened 68 to 104. At 16 px the icon shape is only 12.9 px wide, which fits three strokes with usable gaps but not four; the full mark turns to grey haze.
10
- - `logo-square.svg` - the master cropped to the icon square with square corners, for platforms that apply their own mask (iOS, Android launcher background, apple-touch-icon).
11
- - `logo-glyph.svg` - bars and curve only on transparency, for the Android adaptive-icon foreground.
12
- - `icon-16.png` to `icon-1024.png` - flat exports. 16 and 32 come from `logo-small.svg`, the rest from `logo.svg`.
13
-
14
- ## Regenerate
15
-
16
- ```
17
- packages/tokens/scripts/export-logo.sh
18
- ```
5
+ One instrument, two faces: the watch you know, and what Timebraid adds - several timers at once, one honest total.
19
6
 
20
- Needs `rsvg-convert` (librsvg). The app repository builds its platform icon sets from these files with `pnpm icons`. For a macOS `.icns`, copy the PNGs into an `.iconset` directory under Apple's names and run `iconutil -c icns Timebraid.iconset -o Timebraid.icns`.
7
+ Centred export, 20 September 2026: the watch now sits centred on the plate (the first export sat about 14 px low). The files keep their names, so consumers only regenerate.
21
8
 
22
- ## Specs
23
-
24
- 1024 x 1024 canvas, icon shape 824 wide and centred, corner radius 181.3 (22%),
25
- transparent outside the shape, no baked shadow.
26
-
27
- Background `#4A57D2` to `#2C3391` to `#151A54`, with a 16% white lift from the top edge.
28
- Marks `#FFFFFF`. Curve `#F5A524`.
9
+ ## Files
29
10
 
30
- The curve is one cubic Bezier with a round cap. Its control points sit symmetrically about
31
- the chord, which is what keeps the bend even along the whole stroke - if you edit it, keep
32
- them mirrored or it develops an elbow.
11
+ | File | Use |
12
+ |---|---|
13
+ | `logo.svg` (= `icon-indigo.svg`), `icon-1024.png`, `icon-{512,256,128,64}.png` | App icon on every platform. Indigo plate, full detail. |
14
+ | `icon-light.svg`, `icon-light-1024.png` | Light-plate alternate. Only where the OS asks for a light variant, or on the marketing page beside the indigo one. |
15
+ | `mark-transparent.svg`, `mark-transparent-1024.png`, `mark-512.png` | The watch without a plate. Marketing hero, OG image, About screen, the Android adaptive-icon foreground. |
16
+ | `logo-small.svg` (= `mark-small-on-indigo.svg`), `mark-small.svg`, `icon-{48,32,16}.png` | Flat simplified mark for 48 px and below: case, split dial, hands, crown, pin. No text, pushers or knurl. Favicons, tab bars, notification icons. |
17
+ | `mark-mono.svg` | One-colour mark in `currentColor`. Site header and footer, invoices, PDF report header, the macOS menu bar template image, monochrome contexts. |
18
+ | `legacy/` | The previous tally-mark artwork, kept for reference only. Never ship it beside the watch. |
19
+
20
+ The detailed SVGs set their text in JetBrains Mono 700 (times) and Instrument Sans 600 (labels) with system fallbacks. Use the PNGs for app icons: they are rendered with the right fonts, and an SVG opened without them falls back.
21
+
22
+ ## Size rule
23
+
24
+ - 64 px and up: `logo.svg` or the PNG of the nearest size.
25
+ - Below 64 px: `logo-small.svg` (on the plate) or `mark-small.svg` (bare). Never scale the detailed icon below 64 px - the LCD turns to noise.
26
+ - One colour: `mark-mono.svg`.
27
+
28
+ ## Platform targets
29
+
30
+ | Platform | Source | Output |
31
+ |---|---|---|
32
+ | macOS (Tauri) | `icon-1024.png` | `.icns` whose every slot is the plate scaled to 824/1024 of the slot and centred on transparency (Apple's macOS icon grid); `icon-16.png` and `icon-32.png` feed the small slots the same way |
33
+ | Windows (Tauri) | `icon-1024.png` | `.ico` with 256/64/48/32/16 layers, the 48/32/16 layers from the small-mark PNGs |
34
+ | Linux | `icon-{512,256,128,64}.png` | hicolor set |
35
+ | iOS | `icon-1024.png` | one 1024 App Store icon; Xcode derives the sizes |
36
+ | Android | `mark-transparent-1024.png` foreground on a solid `#2C3391` background | adaptive icon, `mark-mono.svg` as the monochrome layer |
37
+ | Web favicon | `icon-32.png`, `icon-16.png`, `logo-small.svg` | `favicon.png`, `favicon.svg`, `apple-touch-icon.png` (180 px from `icon-1024.png`) |
38
+ | macOS menu bar | `mark-mono.svg` as a template image (16 and 32 px) | |
39
+ | Android notification | `mark-mono.svg` as a white vector drawable | |
40
+
41
+ ## Rules
42
+
43
+ - Do not redraw, restyle or recolour the watch. Use the files.
44
+ - Do not rotate the diagonal, move the crown or change the LCD contents.
45
+ - Put the detailed icon only on its own plate or on transparency.
46
+ - The steel tones inside the icon (`#C9CFDD`, `#9AA2B4`) are icon-internal and are not tokens.
47
+ - Never show the old tally mark and the watch in the same view.
@@ -0,0 +1,68 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="1024" height="1024" xmlns:c2pa="http://c2pa.org/manifest">
2
+ <defs>
3
+
4
+ <linearGradient id="plate" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#4A57D2"></stop><stop offset=".52" stop-color="#2C3391"></stop><stop offset="1" stop-color="#151A54"></stop></linearGradient>
5
+ <linearGradient id="lift" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#fff" stop-opacity=".16"></stop><stop offset=".46" stop-color="#fff" stop-opacity="0"></stop></linearGradient>
6
+ <linearGradient id="steel" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"></stop><stop offset=".22" stop-color="#C9CFDD"></stop><stop offset=".5" stop-color="#F2F4F8"></stop><stop offset=".78" stop-color="#9AA2B4"></stop><stop offset="1" stop-color="#E4E8F0"></stop></linearGradient>
7
+ <linearGradient id="steelDark" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#8B93A5"></stop><stop offset=".5" stop-color="#DDE2EC"></stop><stop offset="1" stop-color="#697084"></stop></linearGradient>
8
+ <linearGradient id="face" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"></stop><stop offset="1" stop-color="#E6E9F2"></stop></linearGradient>
9
+ <linearGradient id="lcd" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#101335"></stop><stop offset="1" stop-color="#1B2160"></stop></linearGradient>
10
+ <linearGradient id="glass" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#fff" stop-opacity=".38"></stop><stop offset=".45" stop-color="#fff" stop-opacity="0"></stop></linearGradient>
11
+ <radialGradient id="innerShade" cx=".5" cy=".5" r=".5"><stop offset=".82" stop-color="#000" stop-opacity="0"></stop><stop offset="1" stop-color="#000" stop-opacity=".35"></stop></radialGradient>
12
+ <linearGradient id="amber" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FBCC7C"></stop><stop offset="1" stop-color="#D98C10"></stop></linearGradient>
13
+ <filter id="drop" x="-20%" y="-20%" width="140%" height="150%"><feDropShadow dx="0" dy="18" stdDeviation="18" flood-color="#050718" flood-opacity=".45"></feDropShadow></filter>
14
+ <filter id="soft" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="6" stdDeviation="6" flood-color="#050718" flood-opacity=".35"></feDropShadow></filter>
15
+ <clipPath id="tl"><polygon points="0,0 1024,0 0,1024"></polygon></clipPath>
16
+ <clipPath id="br"><polygon points="1024,0 1024,1024 0,1024"></polygon></clipPath>
17
+ <clipPath id="dial"><circle cx="512" cy="548" r="272"></circle></clipPath>
18
+ <symbol id="watch" viewBox="0 0 1024 1024">
19
+
20
+ <g filter="url(#soft)">
21
+ <rect x="474" y="160" width="76" height="110" rx="18" fill="url(#steel)"></rect>
22
+ <rect x="486" y="160" width="52" height="34" rx="12" fill="url(#amber)"></rect>
23
+ <g transform="rotate(-42 512 548)"><rect x="476" y="178" width="64" height="86" rx="16" fill="url(#steelDark)"></rect></g>
24
+ <g transform="rotate(42 512 548)"><rect x="484" y="178" width="64" height="86" rx="16" fill="url(#steelDark)"></rect></g>
25
+ <rect x="496" y="255" width="32" height="40" fill="url(#steelDark)"></rect>
26
+ </g>
27
+
28
+ <g filter="url(#drop)"><circle cx="512" cy="548" r="330" fill="url(#steel)"></circle></g>
29
+ <circle cx="512" cy="548" r="330" fill="none" stroke="#5C6178" stroke-width="3" opacity=".5"></circle>
30
+
31
+ <g stroke="#5C6178" stroke-width="7" opacity=".55" stroke-linecap="round">
32
+ <g id="k"><line x1="512" y1="228" x2="512" y2="244"></line></g>
33
+ <use href="#k" transform="rotate(15 512 548)"></use><use href="#k" transform="rotate(30 512 548)"></use><use href="#k" transform="rotate(45 512 548)"></use><use href="#k" transform="rotate(60 512 548)"></use><use href="#k" transform="rotate(75 512 548)"></use><use href="#k" transform="rotate(90 512 548)"></use><use href="#k" transform="rotate(105 512 548)"></use><use href="#k" transform="rotate(120 512 548)"></use><use href="#k" transform="rotate(135 512 548)"></use><use href="#k" transform="rotate(150 512 548)"></use><use href="#k" transform="rotate(165 512 548)"></use><use href="#k" transform="rotate(180 512 548)"></use><use href="#k" transform="rotate(195 512 548)"></use><use href="#k" transform="rotate(210 512 548)"></use><use href="#k" transform="rotate(225 512 548)"></use><use href="#k" transform="rotate(240 512 548)"></use><use href="#k" transform="rotate(255 512 548)"></use><use href="#k" transform="rotate(270 512 548)"></use><use href="#k" transform="rotate(285 512 548)"></use><use href="#k" transform="rotate(300 512 548)"></use><use href="#k" transform="rotate(315 512 548)"></use><use href="#k" transform="rotate(330 512 548)"></use><use href="#k" transform="rotate(345 512 548)"></use>
34
+ </g>
35
+ <circle cx="512" cy="548" r="286" fill="#2B3143"></circle>
36
+
37
+ <g clip-path="url(#dial)">
38
+ <circle cx="512" cy="548" r="272" fill="url(#face)"></circle>
39
+ <g clip-path="url(#br)"><circle cx="512" cy="548" r="272" fill="url(#lcd)"></circle></g>
40
+
41
+ <g clip-path="url(#tl)" stroke="#2C3391" stroke-linecap="round">
42
+ <g id="m" stroke-width="6"><line x1="512" y1="290" x2="512" y2="306"></line></g>
43
+ <use href="#m" transform="rotate(6 512 548)"></use><use href="#m" transform="rotate(12 512 548)"></use><use href="#m" transform="rotate(18 512 548)"></use><use href="#m" transform="rotate(24 512 548)"></use><use href="#m" transform="rotate(36 512 548)"></use><use href="#m" transform="rotate(-6 512 548)"></use><use href="#m" transform="rotate(-12 512 548)"></use><use href="#m" transform="rotate(-18 512 548)"></use><use href="#m" transform="rotate(-24 512 548)"></use><use href="#m" transform="rotate(-36 512 548)"></use><use href="#m" transform="rotate(-42 512 548)"></use><use href="#m" transform="rotate(-48 512 548)"></use><use href="#m" transform="rotate(-54 512 548)"></use><use href="#m" transform="rotate(-66 512 548)"></use><use href="#m" transform="rotate(-72 512 548)"></use><use href="#m" transform="rotate(-78 512 548)"></use><use href="#m" transform="rotate(-84 512 548)"></use><use href="#m" transform="rotate(-96 512 548)"></use><use href="#m" transform="rotate(-102 512 548)"></use><use href="#m" transform="rotate(-108 512 548)"></use><use href="#m" transform="rotate(-114 512 548)"></use><use href="#m" transform="rotate(-126 512 548)"></use><use href="#m" transform="rotate(-132 512 548)"></use><use href="#m" transform="rotate(-138 512 548)"></use><use href="#m" transform="rotate(-144 512 548)"></use>
44
+ <g stroke-width="16"><line x1="512" y1="286" x2="512" y2="324"></line><g transform="rotate(-30 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-60 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(30 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-90 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-120 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-150 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g></g>
45
+
46
+ <g filter="url(#soft)"><line x1="512" y1="548" x2="512" y2="380" stroke="#10131C" stroke-width="26"></line><line x1="512" y1="548" x2="392" y2="616" stroke="#10131C" stroke-width="26"></line></g>
47
+ <line x1="512" y1="548" x2="360" y2="452" stroke="#F5A524" stroke-width="10"></line>
48
+ </g>
49
+
50
+ <line x1="170" y1="890" x2="854" y2="206" stroke="#C9CFDD" stroke-width="40"></line>
51
+ <line x1="170" y1="890" x2="854" y2="206" stroke="#fff" stroke-width="6" opacity=".7"></line>
52
+
53
+ <g clip-path="url(#br)" font-family="JetBrains Mono, SF Mono, Menlo, Consolas, monospace" font-weight="700">
54
+ <g fill="#8A93EC" opacity=".45"><text x="614" y="572" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="17" letter-spacing="1.5">DESIGN</text><text x="760" y="572" text-anchor="end" font-size="26" letter-spacing="-1">0:41</text></g>
55
+ <g fill="#8A93EC" opacity=".6"><text x="572" y="620" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="19" letter-spacing="1.5">CALL</text><text x="754" y="622" text-anchor="end" font-size="34" letter-spacing="-1">1:08</text></g>
56
+ <g fill="#8A93EC" opacity=".8"><text x="500" y="676" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="21" letter-spacing="1.5">API BUILD</text><text x="728" y="680" text-anchor="end" font-size="40" letter-spacing="-1">2:14</text></g>
57
+ <g><circle cx="418" cy="722" r="5" fill="#F5A524"></circle><text x="434" y="730" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="23" letter-spacing="2.5" fill="#8A93EC">3 TIMERS</text><text x="686" y="738" text-anchor="end" font-size="48" fill="#F5A524" letter-spacing="-2">3:22</text></g>
58
+ </g>
59
+ <circle cx="512" cy="548" r="272" fill="url(#innerShade)"></circle>
60
+ <circle cx="512" cy="548" r="272" fill="url(#glass)"></circle>
61
+ </g>
62
+
63
+ <circle cx="512" cy="548" r="22" fill="url(#amber)" filter="url(#soft)"></circle><circle cx="512" cy="548" r="8" fill="#10131C"></circle>
64
+ </symbol>
65
+ </defs>
66
+ <rect width="1024" height="1024" rx="225" fill="url(#plate)"></rect><rect width="1024" height="1024" rx="225" fill="url(#lift)"></rect>
67
+ <g transform="translate(512 512) scale(1.12) translate(-512 -530)"><use href="#watch"></use></g>
68
+ </svg>
Binary file
@@ -0,0 +1,68 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="1024" height="1024" xmlns:c2pa="http://c2pa.org/manifest">
2
+ <defs>
3
+
4
+ <linearGradient id="plate" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#4A57D2"></stop><stop offset=".52" stop-color="#2C3391"></stop><stop offset="1" stop-color="#151A54"></stop></linearGradient>
5
+ <linearGradient id="lift" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#fff" stop-opacity=".16"></stop><stop offset=".46" stop-color="#fff" stop-opacity="0"></stop></linearGradient>
6
+ <linearGradient id="steel" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"></stop><stop offset=".22" stop-color="#C9CFDD"></stop><stop offset=".5" stop-color="#F2F4F8"></stop><stop offset=".78" stop-color="#9AA2B4"></stop><stop offset="1" stop-color="#E4E8F0"></stop></linearGradient>
7
+ <linearGradient id="steelDark" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#8B93A5"></stop><stop offset=".5" stop-color="#DDE2EC"></stop><stop offset="1" stop-color="#697084"></stop></linearGradient>
8
+ <linearGradient id="face" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"></stop><stop offset="1" stop-color="#E6E9F2"></stop></linearGradient>
9
+ <linearGradient id="lcd" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#101335"></stop><stop offset="1" stop-color="#1B2160"></stop></linearGradient>
10
+ <linearGradient id="glass" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#fff" stop-opacity=".38"></stop><stop offset=".45" stop-color="#fff" stop-opacity="0"></stop></linearGradient>
11
+ <radialGradient id="innerShade" cx=".5" cy=".5" r=".5"><stop offset=".82" stop-color="#000" stop-opacity="0"></stop><stop offset="1" stop-color="#000" stop-opacity=".35"></stop></radialGradient>
12
+ <linearGradient id="amber" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FBCC7C"></stop><stop offset="1" stop-color="#D98C10"></stop></linearGradient>
13
+ <filter id="drop" x="-20%" y="-20%" width="140%" height="150%"><feDropShadow dx="0" dy="18" stdDeviation="18" flood-color="#050718" flood-opacity=".45"></feDropShadow></filter>
14
+ <filter id="soft" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="6" stdDeviation="6" flood-color="#050718" flood-opacity=".35"></feDropShadow></filter>
15
+ <clipPath id="tl"><polygon points="0,0 1024,0 0,1024"></polygon></clipPath>
16
+ <clipPath id="br"><polygon points="1024,0 1024,1024 0,1024"></polygon></clipPath>
17
+ <clipPath id="dial"><circle cx="512" cy="548" r="272"></circle></clipPath>
18
+ <symbol id="watch" viewBox="0 0 1024 1024">
19
+
20
+ <g filter="url(#soft)">
21
+ <rect x="474" y="160" width="76" height="110" rx="18" fill="url(#steel)"></rect>
22
+ <rect x="486" y="160" width="52" height="34" rx="12" fill="url(#amber)"></rect>
23
+ <g transform="rotate(-42 512 548)"><rect x="476" y="178" width="64" height="86" rx="16" fill="url(#steelDark)"></rect></g>
24
+ <g transform="rotate(42 512 548)"><rect x="484" y="178" width="64" height="86" rx="16" fill="url(#steelDark)"></rect></g>
25
+ <rect x="496" y="255" width="32" height="40" fill="url(#steelDark)"></rect>
26
+ </g>
27
+
28
+ <g filter="url(#drop)"><circle cx="512" cy="548" r="330" fill="url(#steel)"></circle></g>
29
+ <circle cx="512" cy="548" r="330" fill="none" stroke="#5C6178" stroke-width="3" opacity=".5"></circle>
30
+
31
+ <g stroke="#5C6178" stroke-width="7" opacity=".55" stroke-linecap="round">
32
+ <g id="k"><line x1="512" y1="228" x2="512" y2="244"></line></g>
33
+ <use href="#k" transform="rotate(15 512 548)"></use><use href="#k" transform="rotate(30 512 548)"></use><use href="#k" transform="rotate(45 512 548)"></use><use href="#k" transform="rotate(60 512 548)"></use><use href="#k" transform="rotate(75 512 548)"></use><use href="#k" transform="rotate(90 512 548)"></use><use href="#k" transform="rotate(105 512 548)"></use><use href="#k" transform="rotate(120 512 548)"></use><use href="#k" transform="rotate(135 512 548)"></use><use href="#k" transform="rotate(150 512 548)"></use><use href="#k" transform="rotate(165 512 548)"></use><use href="#k" transform="rotate(180 512 548)"></use><use href="#k" transform="rotate(195 512 548)"></use><use href="#k" transform="rotate(210 512 548)"></use><use href="#k" transform="rotate(225 512 548)"></use><use href="#k" transform="rotate(240 512 548)"></use><use href="#k" transform="rotate(255 512 548)"></use><use href="#k" transform="rotate(270 512 548)"></use><use href="#k" transform="rotate(285 512 548)"></use><use href="#k" transform="rotate(300 512 548)"></use><use href="#k" transform="rotate(315 512 548)"></use><use href="#k" transform="rotate(330 512 548)"></use><use href="#k" transform="rotate(345 512 548)"></use>
34
+ </g>
35
+ <circle cx="512" cy="548" r="286" fill="#2B3143"></circle>
36
+
37
+ <g clip-path="url(#dial)">
38
+ <circle cx="512" cy="548" r="272" fill="url(#face)"></circle>
39
+ <g clip-path="url(#br)"><circle cx="512" cy="548" r="272" fill="url(#lcd)"></circle></g>
40
+
41
+ <g clip-path="url(#tl)" stroke="#2C3391" stroke-linecap="round">
42
+ <g id="m" stroke-width="6"><line x1="512" y1="290" x2="512" y2="306"></line></g>
43
+ <use href="#m" transform="rotate(6 512 548)"></use><use href="#m" transform="rotate(12 512 548)"></use><use href="#m" transform="rotate(18 512 548)"></use><use href="#m" transform="rotate(24 512 548)"></use><use href="#m" transform="rotate(36 512 548)"></use><use href="#m" transform="rotate(-6 512 548)"></use><use href="#m" transform="rotate(-12 512 548)"></use><use href="#m" transform="rotate(-18 512 548)"></use><use href="#m" transform="rotate(-24 512 548)"></use><use href="#m" transform="rotate(-36 512 548)"></use><use href="#m" transform="rotate(-42 512 548)"></use><use href="#m" transform="rotate(-48 512 548)"></use><use href="#m" transform="rotate(-54 512 548)"></use><use href="#m" transform="rotate(-66 512 548)"></use><use href="#m" transform="rotate(-72 512 548)"></use><use href="#m" transform="rotate(-78 512 548)"></use><use href="#m" transform="rotate(-84 512 548)"></use><use href="#m" transform="rotate(-96 512 548)"></use><use href="#m" transform="rotate(-102 512 548)"></use><use href="#m" transform="rotate(-108 512 548)"></use><use href="#m" transform="rotate(-114 512 548)"></use><use href="#m" transform="rotate(-126 512 548)"></use><use href="#m" transform="rotate(-132 512 548)"></use><use href="#m" transform="rotate(-138 512 548)"></use><use href="#m" transform="rotate(-144 512 548)"></use>
44
+ <g stroke-width="16"><line x1="512" y1="286" x2="512" y2="324"></line><g transform="rotate(-30 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-60 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(30 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-90 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-120 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-150 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g></g>
45
+
46
+ <g filter="url(#soft)"><line x1="512" y1="548" x2="512" y2="380" stroke="#10131C" stroke-width="26"></line><line x1="512" y1="548" x2="392" y2="616" stroke="#10131C" stroke-width="26"></line></g>
47
+ <line x1="512" y1="548" x2="360" y2="452" stroke="#F5A524" stroke-width="10"></line>
48
+ </g>
49
+
50
+ <line x1="170" y1="890" x2="854" y2="206" stroke="#C9CFDD" stroke-width="40"></line>
51
+ <line x1="170" y1="890" x2="854" y2="206" stroke="#fff" stroke-width="6" opacity=".7"></line>
52
+
53
+ <g clip-path="url(#br)" font-family="JetBrains Mono, SF Mono, Menlo, Consolas, monospace" font-weight="700">
54
+ <g fill="#8A93EC" opacity=".45"><text x="614" y="572" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="17" letter-spacing="1.5">DESIGN</text><text x="760" y="572" text-anchor="end" font-size="26" letter-spacing="-1">0:41</text></g>
55
+ <g fill="#8A93EC" opacity=".6"><text x="572" y="620" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="19" letter-spacing="1.5">CALL</text><text x="754" y="622" text-anchor="end" font-size="34" letter-spacing="-1">1:08</text></g>
56
+ <g fill="#8A93EC" opacity=".8"><text x="500" y="676" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="21" letter-spacing="1.5">API BUILD</text><text x="728" y="680" text-anchor="end" font-size="40" letter-spacing="-1">2:14</text></g>
57
+ <g><circle cx="418" cy="722" r="5" fill="#F5A524"></circle><text x="434" y="730" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="23" letter-spacing="2.5" fill="#8A93EC">3 TIMERS</text><text x="686" y="738" text-anchor="end" font-size="48" fill="#F5A524" letter-spacing="-2">3:22</text></g>
58
+ </g>
59
+ <circle cx="512" cy="548" r="272" fill="url(#innerShade)"></circle>
60
+ <circle cx="512" cy="548" r="272" fill="url(#glass)"></circle>
61
+ </g>
62
+
63
+ <circle cx="512" cy="548" r="22" fill="url(#amber)" filter="url(#soft)"></circle><circle cx="512" cy="548" r="8" fill="#10131C"></circle>
64
+ </symbol>
65
+ </defs>
66
+ <rect width="1024" height="1024" rx="225" fill="#EEF0F6"></rect>
67
+ <g transform="translate(512 512) scale(1.12) translate(-512 -530)"><use href="#watch"></use></g>
68
+ </svg>
@@ -0,0 +1,15 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
2
+ <defs>
3
+ <linearGradient id="bg" x1="0" y1="0" x2="0.35" y2="1"><stop offset="0" stop-color="#4A57D2"></stop><stop offset="0.55" stop-color="#2C3391"></stop><stop offset="1" stop-color="#151A54"></stop></linearGradient>
4
+ <radialGradient id="lift" cx="0.5" cy="0.06" r="0.85"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.16"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0"></stop></radialGradient>
5
+ <clipPath id="mask"><rect x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3"></rect></clipPath>
6
+ </defs>
7
+ <rect id="icon-shape" x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3" fill="url(#bg)"></rect>
8
+ <rect x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3" fill="url(#lift)"></rect>
9
+ <g clip-path="url(#mask)">
10
+ <line x1="332" y1="300" x2="332" y2="724" stroke="#FFFFFF" stroke-width="104" stroke-linecap="round"></line>
11
+ <line x1="512" y1="300" x2="512" y2="724" stroke="#FFFFFF" stroke-width="104" stroke-linecap="round"></line>
12
+ <line x1="692" y1="300" x2="692" y2="724" stroke="#FFFFFF" stroke-width="104" stroke-linecap="round"></line>
13
+ <path d="M 272 714 C 482.5 611.9, 615.8 497.1, 748 304" fill="none" stroke="#F5A524" stroke-width="110" stroke-linecap="round"></path>
14
+ </g>
15
+ </svg>
@@ -0,0 +1,16 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
2
+ <defs>
3
+ <linearGradient id="bg" x1="0" y1="0" x2="0.35" y2="1"><stop offset="0" stop-color="#4A57D2"></stop><stop offset="0.55" stop-color="#2C3391"></stop><stop offset="1" stop-color="#151A54"></stop></linearGradient>
4
+ <radialGradient id="lift" cx="0.5" cy="0.06" r="0.85"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.16"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0"></stop></radialGradient>
5
+ <clipPath id="mask"><rect x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3"></rect></clipPath>
6
+ </defs>
7
+ <rect id="icon-shape" x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3" fill="url(#bg)"></rect>
8
+ <rect x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3" fill="url(#lift)"></rect>
9
+ <g clip-path="url(#mask)">
10
+ <line x1="308" y1="296" x2="308" y2="728" stroke="#FFFFFF" stroke-width="68" stroke-linecap="round"></line>
11
+ <line x1="444" y1="296" x2="444" y2="728" stroke="#FFFFFF" stroke-width="68" stroke-linecap="round"></line>
12
+ <line x1="580" y1="296" x2="580" y2="728" stroke="#FFFFFF" stroke-width="68" stroke-linecap="round"></line>
13
+ <line x1="716" y1="296" x2="716" y2="728" stroke="#FFFFFF" stroke-width="68" stroke-linecap="round"></line>
14
+ <path d="M 248 716 C 478.0 619.0, 626.4 504.2, 778 306" fill="none" stroke="#F5A524" stroke-width="80" stroke-linecap="round"></path>
15
+ </g>
16
+ </svg>
@@ -1,15 +1,11 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
2
- <defs>
3
- <linearGradient id="bg" x1="0" y1="0" x2="0.35" y2="1"><stop offset="0" stop-color="#4A57D2"></stop><stop offset="0.55" stop-color="#2C3391"></stop><stop offset="1" stop-color="#151A54"></stop></linearGradient>
4
- <radialGradient id="lift" cx="0.5" cy="0.06" r="0.85"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.16"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0"></stop></radialGradient>
5
- <clipPath id="mask"><rect x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3"></rect></clipPath>
6
- </defs>
7
- <rect id="icon-shape" x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3" fill="url(#bg)"></rect>
8
- <rect x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3" fill="url(#lift)"></rect>
9
- <g clip-path="url(#mask)">
10
- <line x1="332" y1="300" x2="332" y2="724" stroke="#FFFFFF" stroke-width="104" stroke-linecap="round"></line>
11
- <line x1="512" y1="300" x2="512" y2="724" stroke="#FFFFFF" stroke-width="104" stroke-linecap="round"></line>
12
- <line x1="692" y1="300" x2="692" y2="724" stroke="#FFFFFF" stroke-width="104" stroke-linecap="round"></line>
13
- <path d="M 272 714 C 482.5 611.9, 615.8 497.1, 748 304" fill="none" stroke="#F5A524" stroke-width="110" stroke-linecap="round"></path>
14
- </g>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" xmlns:c2pa="http://c2pa.org/manifest">
2
+ <defs><clipPath id="d"><circle cx="512" cy="560" r="300"></circle></clipPath><clipPath id="br"><polygon points="1024,0 1024,1024 0,1024"></polygon></clipPath></defs>
3
+ <rect width="1024" height="1024" rx="225" fill="#2C3391"></rect>
4
+ <rect x="464" y="130" width="96" height="120" rx="24" fill="#FFFFFF"></rect>
5
+ <circle cx="512" cy="560" r="340" fill="#FFFFFF"></circle>
6
+ <circle cx="512" cy="560" r="300" fill="#EEF0F6"></circle>
7
+ <g clip-path="url(#d)"><rect width="1024" height="1024" fill="#151A54" clip-path="url(#br)"></rect><line x1="140" y1="932" x2="932" y2="140" stroke="#FFFFFF" stroke-width="44"></line></g>
8
+ <g stroke="#FFFFFF" stroke-linecap="round" stroke-width="40"><line x1="512" y1="560" x2="512" y2="360"></line><line x1="512" y1="560" x2="372" y2="640"></line></g>
9
+ <line x1="512" y1="560" x2="340" y2="452" stroke="#F5A524" stroke-width="18" stroke-linecap="round"></line>
10
+ <circle cx="512" cy="560" r="34" fill="#F5A524"></circle>
15
11
  </svg>
package/assets/logo.svg CHANGED
@@ -1,16 +1,68 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="1024" height="1024" xmlns:c2pa="http://c2pa.org/manifest">
2
2
  <defs>
3
- <linearGradient id="bg" x1="0" y1="0" x2="0.35" y2="1"><stop offset="0" stop-color="#4A57D2"></stop><stop offset="0.55" stop-color="#2C3391"></stop><stop offset="1" stop-color="#151A54"></stop></linearGradient>
4
- <radialGradient id="lift" cx="0.5" cy="0.06" r="0.85"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.16"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0"></stop></radialGradient>
5
- <clipPath id="mask"><rect x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3"></rect></clipPath>
3
+
4
+ <linearGradient id="plate" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#4A57D2"></stop><stop offset=".52" stop-color="#2C3391"></stop><stop offset="1" stop-color="#151A54"></stop></linearGradient>
5
+ <linearGradient id="lift" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#fff" stop-opacity=".16"></stop><stop offset=".46" stop-color="#fff" stop-opacity="0"></stop></linearGradient>
6
+ <linearGradient id="steel" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"></stop><stop offset=".22" stop-color="#C9CFDD"></stop><stop offset=".5" stop-color="#F2F4F8"></stop><stop offset=".78" stop-color="#9AA2B4"></stop><stop offset="1" stop-color="#E4E8F0"></stop></linearGradient>
7
+ <linearGradient id="steelDark" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#8B93A5"></stop><stop offset=".5" stop-color="#DDE2EC"></stop><stop offset="1" stop-color="#697084"></stop></linearGradient>
8
+ <linearGradient id="face" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"></stop><stop offset="1" stop-color="#E6E9F2"></stop></linearGradient>
9
+ <linearGradient id="lcd" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#101335"></stop><stop offset="1" stop-color="#1B2160"></stop></linearGradient>
10
+ <linearGradient id="glass" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#fff" stop-opacity=".38"></stop><stop offset=".45" stop-color="#fff" stop-opacity="0"></stop></linearGradient>
11
+ <radialGradient id="innerShade" cx=".5" cy=".5" r=".5"><stop offset=".82" stop-color="#000" stop-opacity="0"></stop><stop offset="1" stop-color="#000" stop-opacity=".35"></stop></radialGradient>
12
+ <linearGradient id="amber" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FBCC7C"></stop><stop offset="1" stop-color="#D98C10"></stop></linearGradient>
13
+ <filter id="drop" x="-20%" y="-20%" width="140%" height="150%"><feDropShadow dx="0" dy="18" stdDeviation="18" flood-color="#050718" flood-opacity=".45"></feDropShadow></filter>
14
+ <filter id="soft" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="6" stdDeviation="6" flood-color="#050718" flood-opacity=".35"></feDropShadow></filter>
15
+ <clipPath id="tl"><polygon points="0,0 1024,0 0,1024"></polygon></clipPath>
16
+ <clipPath id="br"><polygon points="1024,0 1024,1024 0,1024"></polygon></clipPath>
17
+ <clipPath id="dial"><circle cx="512" cy="548" r="272"></circle></clipPath>
18
+ <symbol id="watch" viewBox="0 0 1024 1024">
19
+
20
+ <g filter="url(#soft)">
21
+ <rect x="474" y="160" width="76" height="110" rx="18" fill="url(#steel)"></rect>
22
+ <rect x="486" y="160" width="52" height="34" rx="12" fill="url(#amber)"></rect>
23
+ <g transform="rotate(-42 512 548)"><rect x="476" y="178" width="64" height="86" rx="16" fill="url(#steelDark)"></rect></g>
24
+ <g transform="rotate(42 512 548)"><rect x="484" y="178" width="64" height="86" rx="16" fill="url(#steelDark)"></rect></g>
25
+ <rect x="496" y="255" width="32" height="40" fill="url(#steelDark)"></rect>
26
+ </g>
27
+
28
+ <g filter="url(#drop)"><circle cx="512" cy="548" r="330" fill="url(#steel)"></circle></g>
29
+ <circle cx="512" cy="548" r="330" fill="none" stroke="#5C6178" stroke-width="3" opacity=".5"></circle>
30
+
31
+ <g stroke="#5C6178" stroke-width="7" opacity=".55" stroke-linecap="round">
32
+ <g id="k"><line x1="512" y1="228" x2="512" y2="244"></line></g>
33
+ <use href="#k" transform="rotate(15 512 548)"></use><use href="#k" transform="rotate(30 512 548)"></use><use href="#k" transform="rotate(45 512 548)"></use><use href="#k" transform="rotate(60 512 548)"></use><use href="#k" transform="rotate(75 512 548)"></use><use href="#k" transform="rotate(90 512 548)"></use><use href="#k" transform="rotate(105 512 548)"></use><use href="#k" transform="rotate(120 512 548)"></use><use href="#k" transform="rotate(135 512 548)"></use><use href="#k" transform="rotate(150 512 548)"></use><use href="#k" transform="rotate(165 512 548)"></use><use href="#k" transform="rotate(180 512 548)"></use><use href="#k" transform="rotate(195 512 548)"></use><use href="#k" transform="rotate(210 512 548)"></use><use href="#k" transform="rotate(225 512 548)"></use><use href="#k" transform="rotate(240 512 548)"></use><use href="#k" transform="rotate(255 512 548)"></use><use href="#k" transform="rotate(270 512 548)"></use><use href="#k" transform="rotate(285 512 548)"></use><use href="#k" transform="rotate(300 512 548)"></use><use href="#k" transform="rotate(315 512 548)"></use><use href="#k" transform="rotate(330 512 548)"></use><use href="#k" transform="rotate(345 512 548)"></use>
34
+ </g>
35
+ <circle cx="512" cy="548" r="286" fill="#2B3143"></circle>
36
+
37
+ <g clip-path="url(#dial)">
38
+ <circle cx="512" cy="548" r="272" fill="url(#face)"></circle>
39
+ <g clip-path="url(#br)"><circle cx="512" cy="548" r="272" fill="url(#lcd)"></circle></g>
40
+
41
+ <g clip-path="url(#tl)" stroke="#2C3391" stroke-linecap="round">
42
+ <g id="m" stroke-width="6"><line x1="512" y1="290" x2="512" y2="306"></line></g>
43
+ <use href="#m" transform="rotate(6 512 548)"></use><use href="#m" transform="rotate(12 512 548)"></use><use href="#m" transform="rotate(18 512 548)"></use><use href="#m" transform="rotate(24 512 548)"></use><use href="#m" transform="rotate(36 512 548)"></use><use href="#m" transform="rotate(-6 512 548)"></use><use href="#m" transform="rotate(-12 512 548)"></use><use href="#m" transform="rotate(-18 512 548)"></use><use href="#m" transform="rotate(-24 512 548)"></use><use href="#m" transform="rotate(-36 512 548)"></use><use href="#m" transform="rotate(-42 512 548)"></use><use href="#m" transform="rotate(-48 512 548)"></use><use href="#m" transform="rotate(-54 512 548)"></use><use href="#m" transform="rotate(-66 512 548)"></use><use href="#m" transform="rotate(-72 512 548)"></use><use href="#m" transform="rotate(-78 512 548)"></use><use href="#m" transform="rotate(-84 512 548)"></use><use href="#m" transform="rotate(-96 512 548)"></use><use href="#m" transform="rotate(-102 512 548)"></use><use href="#m" transform="rotate(-108 512 548)"></use><use href="#m" transform="rotate(-114 512 548)"></use><use href="#m" transform="rotate(-126 512 548)"></use><use href="#m" transform="rotate(-132 512 548)"></use><use href="#m" transform="rotate(-138 512 548)"></use><use href="#m" transform="rotate(-144 512 548)"></use>
44
+ <g stroke-width="16"><line x1="512" y1="286" x2="512" y2="324"></line><g transform="rotate(-30 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-60 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(30 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-90 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-120 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-150 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g></g>
45
+
46
+ <g filter="url(#soft)"><line x1="512" y1="548" x2="512" y2="380" stroke="#10131C" stroke-width="26"></line><line x1="512" y1="548" x2="392" y2="616" stroke="#10131C" stroke-width="26"></line></g>
47
+ <line x1="512" y1="548" x2="360" y2="452" stroke="#F5A524" stroke-width="10"></line>
48
+ </g>
49
+
50
+ <line x1="170" y1="890" x2="854" y2="206" stroke="#C9CFDD" stroke-width="40"></line>
51
+ <line x1="170" y1="890" x2="854" y2="206" stroke="#fff" stroke-width="6" opacity=".7"></line>
52
+
53
+ <g clip-path="url(#br)" font-family="JetBrains Mono, SF Mono, Menlo, Consolas, monospace" font-weight="700">
54
+ <g fill="#8A93EC" opacity=".45"><text x="614" y="572" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="17" letter-spacing="1.5">DESIGN</text><text x="760" y="572" text-anchor="end" font-size="26" letter-spacing="-1">0:41</text></g>
55
+ <g fill="#8A93EC" opacity=".6"><text x="572" y="620" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="19" letter-spacing="1.5">CALL</text><text x="754" y="622" text-anchor="end" font-size="34" letter-spacing="-1">1:08</text></g>
56
+ <g fill="#8A93EC" opacity=".8"><text x="500" y="676" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="21" letter-spacing="1.5">API BUILD</text><text x="728" y="680" text-anchor="end" font-size="40" letter-spacing="-1">2:14</text></g>
57
+ <g><circle cx="418" cy="722" r="5" fill="#F5A524"></circle><text x="434" y="730" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="23" letter-spacing="2.5" fill="#8A93EC">3 TIMERS</text><text x="686" y="738" text-anchor="end" font-size="48" fill="#F5A524" letter-spacing="-2">3:22</text></g>
58
+ </g>
59
+ <circle cx="512" cy="548" r="272" fill="url(#innerShade)"></circle>
60
+ <circle cx="512" cy="548" r="272" fill="url(#glass)"></circle>
61
+ </g>
62
+
63
+ <circle cx="512" cy="548" r="22" fill="url(#amber)" filter="url(#soft)"></circle><circle cx="512" cy="548" r="8" fill="#10131C"></circle>
64
+ </symbol>
6
65
  </defs>
7
- <rect id="icon-shape" x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3" fill="url(#bg)"></rect>
8
- <rect x="100.0" y="100.0" width="824" height="824" rx="181.3" ry="181.3" fill="url(#lift)"></rect>
9
- <g clip-path="url(#mask)">
10
- <line x1="308" y1="296" x2="308" y2="728" stroke="#FFFFFF" stroke-width="68" stroke-linecap="round"></line>
11
- <line x1="444" y1="296" x2="444" y2="728" stroke="#FFFFFF" stroke-width="68" stroke-linecap="round"></line>
12
- <line x1="580" y1="296" x2="580" y2="728" stroke="#FFFFFF" stroke-width="68" stroke-linecap="round"></line>
13
- <line x1="716" y1="296" x2="716" y2="728" stroke="#FFFFFF" stroke-width="68" stroke-linecap="round"></line>
14
- <path d="M 248 716 C 478.0 619.0, 626.4 504.2, 778 306" fill="none" stroke="#F5A524" stroke-width="80" stroke-linecap="round"></path>
15
- </g>
66
+ <rect width="1024" height="1024" rx="225" fill="url(#plate)"></rect><rect width="1024" height="1024" rx="225" fill="url(#lift)"></rect>
67
+ <g transform="translate(512 512) scale(1.12) translate(-512 -530)"><use href="#watch"></use></g>
16
68
  </svg>
Binary file
@@ -0,0 +1,10 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" xmlns:c2pa="http://c2pa.org/manifest">
2
+ <defs><clipPath id="d"><circle cx="512" cy="560" r="300"></circle></clipPath><clipPath id="br"><polygon points="1024,0 1024,1024 0,1024"></polygon></clipPath></defs>
3
+ <g fill="currentColor">
4
+ <rect x="464" y="130" width="96" height="120" rx="24"></rect>
5
+ <circle cx="512" cy="560" r="340" fill="none" stroke="currentColor" stroke-width="44"></circle>
6
+ <g clip-path="url(#d)"><rect width="1024" height="1024" clip-path="url(#br)"></rect></g>
7
+ <line x1="512" y1="560" x2="512" y2="360" stroke="currentColor" stroke-width="44" stroke-linecap="round"></line><line x1="512" y1="560" x2="372" y2="640" stroke="currentColor" stroke-width="44" stroke-linecap="round"></line>
8
+ <circle cx="512" cy="560" r="40"></circle>
9
+ </g>
10
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" xmlns:c2pa="http://c2pa.org/manifest">
2
+ <defs><clipPath id="d"><circle cx="512" cy="560" r="300"></circle></clipPath><clipPath id="br"><polygon points="1024,0 1024,1024 0,1024"></polygon></clipPath></defs>
3
+ <rect width="1024" height="1024" rx="225" fill="#2C3391"></rect>
4
+ <rect x="464" y="130" width="96" height="120" rx="24" fill="#FFFFFF"></rect>
5
+ <circle cx="512" cy="560" r="340" fill="#FFFFFF"></circle>
6
+ <circle cx="512" cy="560" r="300" fill="#EEF0F6"></circle>
7
+ <g clip-path="url(#d)"><rect width="1024" height="1024" fill="#151A54" clip-path="url(#br)"></rect><line x1="140" y1="932" x2="932" y2="140" stroke="#FFFFFF" stroke-width="44"></line></g>
8
+ <g stroke="#FFFFFF" stroke-linecap="round" stroke-width="40"><line x1="512" y1="560" x2="512" y2="360"></line><line x1="512" y1="560" x2="372" y2="640"></line></g>
9
+ <line x1="512" y1="560" x2="340" y2="452" stroke="#F5A524" stroke-width="18" stroke-linecap="round"></line>
10
+ <circle cx="512" cy="560" r="34" fill="#F5A524"></circle>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" xmlns:c2pa="http://c2pa.org/manifest">
2
+ <defs><clipPath id="d"><circle cx="512" cy="560" r="300"></circle></clipPath><clipPath id="br"><polygon points="1024,0 1024,1024 0,1024"></polygon></clipPath></defs>
3
+
4
+ <rect x="464" y="130" width="96" height="120" rx="24" fill="#2C3391"></rect>
5
+ <circle cx="512" cy="560" r="340" fill="#2C3391"></circle>
6
+ <circle cx="512" cy="560" r="300" fill="#FFFFFF"></circle>
7
+ <g clip-path="url(#d)"><rect width="1024" height="1024" fill="#151A54" clip-path="url(#br)"></rect><line x1="140" y1="932" x2="932" y2="140" stroke="#2C3391" stroke-width="44"></line></g>
8
+ <g stroke="#2C3391" stroke-linecap="round" stroke-width="40"><line x1="512" y1="560" x2="512" y2="360"></line><line x1="512" y1="560" x2="372" y2="640"></line></g>
9
+ <line x1="512" y1="560" x2="340" y2="452" stroke="#F5A524" stroke-width="18" stroke-linecap="round"></line>
10
+ <circle cx="512" cy="560" r="34" fill="#F5A524"></circle>
11
+ </svg>
Binary file
@@ -0,0 +1,67 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="1024" height="1024" xmlns:c2pa="http://c2pa.org/manifest">
2
+ <defs>
3
+
4
+ <linearGradient id="plate" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#4A57D2"></stop><stop offset=".52" stop-color="#2C3391"></stop><stop offset="1" stop-color="#151A54"></stop></linearGradient>
5
+ <linearGradient id="lift" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#fff" stop-opacity=".16"></stop><stop offset=".46" stop-color="#fff" stop-opacity="0"></stop></linearGradient>
6
+ <linearGradient id="steel" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"></stop><stop offset=".22" stop-color="#C9CFDD"></stop><stop offset=".5" stop-color="#F2F4F8"></stop><stop offset=".78" stop-color="#9AA2B4"></stop><stop offset="1" stop-color="#E4E8F0"></stop></linearGradient>
7
+ <linearGradient id="steelDark" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#8B93A5"></stop><stop offset=".5" stop-color="#DDE2EC"></stop><stop offset="1" stop-color="#697084"></stop></linearGradient>
8
+ <linearGradient id="face" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"></stop><stop offset="1" stop-color="#E6E9F2"></stop></linearGradient>
9
+ <linearGradient id="lcd" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#101335"></stop><stop offset="1" stop-color="#1B2160"></stop></linearGradient>
10
+ <linearGradient id="glass" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#fff" stop-opacity=".38"></stop><stop offset=".45" stop-color="#fff" stop-opacity="0"></stop></linearGradient>
11
+ <radialGradient id="innerShade" cx=".5" cy=".5" r=".5"><stop offset=".82" stop-color="#000" stop-opacity="0"></stop><stop offset="1" stop-color="#000" stop-opacity=".35"></stop></radialGradient>
12
+ <linearGradient id="amber" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FBCC7C"></stop><stop offset="1" stop-color="#D98C10"></stop></linearGradient>
13
+ <filter id="drop" x="-20%" y="-20%" width="140%" height="150%"><feDropShadow dx="0" dy="18" stdDeviation="18" flood-color="#050718" flood-opacity=".45"></feDropShadow></filter>
14
+ <filter id="soft" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="6" stdDeviation="6" flood-color="#050718" flood-opacity=".35"></feDropShadow></filter>
15
+ <clipPath id="tl"><polygon points="0,0 1024,0 0,1024"></polygon></clipPath>
16
+ <clipPath id="br"><polygon points="1024,0 1024,1024 0,1024"></polygon></clipPath>
17
+ <clipPath id="dial"><circle cx="512" cy="548" r="272"></circle></clipPath>
18
+ <symbol id="watch" viewBox="0 0 1024 1024">
19
+
20
+ <g filter="url(#soft)">
21
+ <rect x="474" y="160" width="76" height="110" rx="18" fill="url(#steel)"></rect>
22
+ <rect x="486" y="160" width="52" height="34" rx="12" fill="url(#amber)"></rect>
23
+ <g transform="rotate(-42 512 548)"><rect x="476" y="178" width="64" height="86" rx="16" fill="url(#steelDark)"></rect></g>
24
+ <g transform="rotate(42 512 548)"><rect x="484" y="178" width="64" height="86" rx="16" fill="url(#steelDark)"></rect></g>
25
+ <rect x="496" y="255" width="32" height="40" fill="url(#steelDark)"></rect>
26
+ </g>
27
+
28
+ <g filter="url(#drop)"><circle cx="512" cy="548" r="330" fill="url(#steel)"></circle></g>
29
+ <circle cx="512" cy="548" r="330" fill="none" stroke="#5C6178" stroke-width="3" opacity=".5"></circle>
30
+
31
+ <g stroke="#5C6178" stroke-width="7" opacity=".55" stroke-linecap="round">
32
+ <g id="k"><line x1="512" y1="228" x2="512" y2="244"></line></g>
33
+ <use href="#k" transform="rotate(15 512 548)"></use><use href="#k" transform="rotate(30 512 548)"></use><use href="#k" transform="rotate(45 512 548)"></use><use href="#k" transform="rotate(60 512 548)"></use><use href="#k" transform="rotate(75 512 548)"></use><use href="#k" transform="rotate(90 512 548)"></use><use href="#k" transform="rotate(105 512 548)"></use><use href="#k" transform="rotate(120 512 548)"></use><use href="#k" transform="rotate(135 512 548)"></use><use href="#k" transform="rotate(150 512 548)"></use><use href="#k" transform="rotate(165 512 548)"></use><use href="#k" transform="rotate(180 512 548)"></use><use href="#k" transform="rotate(195 512 548)"></use><use href="#k" transform="rotate(210 512 548)"></use><use href="#k" transform="rotate(225 512 548)"></use><use href="#k" transform="rotate(240 512 548)"></use><use href="#k" transform="rotate(255 512 548)"></use><use href="#k" transform="rotate(270 512 548)"></use><use href="#k" transform="rotate(285 512 548)"></use><use href="#k" transform="rotate(300 512 548)"></use><use href="#k" transform="rotate(315 512 548)"></use><use href="#k" transform="rotate(330 512 548)"></use><use href="#k" transform="rotate(345 512 548)"></use>
34
+ </g>
35
+ <circle cx="512" cy="548" r="286" fill="#2B3143"></circle>
36
+
37
+ <g clip-path="url(#dial)">
38
+ <circle cx="512" cy="548" r="272" fill="url(#face)"></circle>
39
+ <g clip-path="url(#br)"><circle cx="512" cy="548" r="272" fill="url(#lcd)"></circle></g>
40
+
41
+ <g clip-path="url(#tl)" stroke="#2C3391" stroke-linecap="round">
42
+ <g id="m" stroke-width="6"><line x1="512" y1="290" x2="512" y2="306"></line></g>
43
+ <use href="#m" transform="rotate(6 512 548)"></use><use href="#m" transform="rotate(12 512 548)"></use><use href="#m" transform="rotate(18 512 548)"></use><use href="#m" transform="rotate(24 512 548)"></use><use href="#m" transform="rotate(36 512 548)"></use><use href="#m" transform="rotate(-6 512 548)"></use><use href="#m" transform="rotate(-12 512 548)"></use><use href="#m" transform="rotate(-18 512 548)"></use><use href="#m" transform="rotate(-24 512 548)"></use><use href="#m" transform="rotate(-36 512 548)"></use><use href="#m" transform="rotate(-42 512 548)"></use><use href="#m" transform="rotate(-48 512 548)"></use><use href="#m" transform="rotate(-54 512 548)"></use><use href="#m" transform="rotate(-66 512 548)"></use><use href="#m" transform="rotate(-72 512 548)"></use><use href="#m" transform="rotate(-78 512 548)"></use><use href="#m" transform="rotate(-84 512 548)"></use><use href="#m" transform="rotate(-96 512 548)"></use><use href="#m" transform="rotate(-102 512 548)"></use><use href="#m" transform="rotate(-108 512 548)"></use><use href="#m" transform="rotate(-114 512 548)"></use><use href="#m" transform="rotate(-126 512 548)"></use><use href="#m" transform="rotate(-132 512 548)"></use><use href="#m" transform="rotate(-138 512 548)"></use><use href="#m" transform="rotate(-144 512 548)"></use>
44
+ <g stroke-width="16"><line x1="512" y1="286" x2="512" y2="324"></line><g transform="rotate(-30 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-60 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(30 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-90 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-120 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g><g transform="rotate(-150 512 548)"><line x1="512" y1="286" x2="512" y2="318"></line></g></g>
45
+
46
+ <g filter="url(#soft)"><line x1="512" y1="548" x2="512" y2="380" stroke="#10131C" stroke-width="26"></line><line x1="512" y1="548" x2="392" y2="616" stroke="#10131C" stroke-width="26"></line></g>
47
+ <line x1="512" y1="548" x2="360" y2="452" stroke="#F5A524" stroke-width="10"></line>
48
+ </g>
49
+
50
+ <line x1="170" y1="890" x2="854" y2="206" stroke="#C9CFDD" stroke-width="40"></line>
51
+ <line x1="170" y1="890" x2="854" y2="206" stroke="#fff" stroke-width="6" opacity=".7"></line>
52
+
53
+ <g clip-path="url(#br)" font-family="JetBrains Mono, SF Mono, Menlo, Consolas, monospace" font-weight="700">
54
+ <g fill="#8A93EC" opacity=".45"><text x="614" y="572" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="17" letter-spacing="1.5">DESIGN</text><text x="760" y="572" text-anchor="end" font-size="26" letter-spacing="-1">0:41</text></g>
55
+ <g fill="#8A93EC" opacity=".6"><text x="572" y="620" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="19" letter-spacing="1.5">CALL</text><text x="754" y="622" text-anchor="end" font-size="34" letter-spacing="-1">1:08</text></g>
56
+ <g fill="#8A93EC" opacity=".8"><text x="500" y="676" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="21" letter-spacing="1.5">API BUILD</text><text x="728" y="680" text-anchor="end" font-size="40" letter-spacing="-1">2:14</text></g>
57
+ <g><circle cx="418" cy="722" r="5" fill="#F5A524"></circle><text x="434" y="730" font-family="Instrument Sans, Helvetica Neue, Arial, sans-serif" font-weight="600" font-size="23" letter-spacing="2.5" fill="#8A93EC">3 TIMERS</text><text x="686" y="738" text-anchor="end" font-size="48" fill="#F5A524" letter-spacing="-2">3:22</text></g>
58
+ </g>
59
+ <circle cx="512" cy="548" r="272" fill="url(#innerShade)"></circle>
60
+ <circle cx="512" cy="548" r="272" fill="url(#glass)"></circle>
61
+ </g>
62
+
63
+ <circle cx="512" cy="548" r="22" fill="url(#amber)" filter="url(#soft)"></circle><circle cx="512" cy="548" r="8" fill="#10131C"></circle>
64
+ </symbol>
65
+ </defs>
66
+ <g transform="translate(512 512) scale(1.12) translate(-512 -530)"><use href="#watch"></use></g>
67
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timebraid/tokens",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "Timebraid design tokens: CSS custom properties, base styles, fonts and brand assets.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
package/tokens/base.css CHANGED
@@ -12,6 +12,7 @@ a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[t
12
12
  @keyframes t-pulse{0%,100%{opacity:1}50%{opacity:.35}}
13
13
  @keyframes t-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
14
14
  @keyframes t-sheet{from{transform:translateY(100%)}to{transform:none}}
15
+ @keyframes t-drawer{from{transform:translateX(-100%)}to{transform:none}}
15
16
  @keyframes t-scrim{from{opacity:0}to{opacity:1}}
16
17
  @keyframes t-pop{from{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}
17
18
  @keyframes t-island{from{transform:scaleX(.6);opacity:.4}to{transform:none;opacity:1}}
@@ -23,15 +23,15 @@
23
23
  --gutter:24px;
24
24
 
25
25
  --sidebar-w:232px;
26
- --content-max:860px;
27
- --content-max-narrow:680px;
26
+ --content-max:1040px;
27
+ --content-max-narrow:760px;
28
28
  --gutter-phone:16px;
29
29
 
30
30
  --row-h:46px;
31
31
  --row-h-sub:56px;
32
32
  --row-h-dense:40px;
33
- --control-h-sm:28px;
34
- --control-h-md:34px;
33
+ --control-h-sm:30px;
34
+ --control-h-md:36px;
35
35
  --control-h-lg:44px;
36
36
  --control-h-xl:50px;
37
37
  --pill-h:46px;
@@ -45,6 +45,7 @@
45
45
  --toggle-w:46px;
46
46
  --toggle-h:28px;
47
47
  --field-h:38px;
48
- --seg-h:32px;
48
+ --seg-h:36px;
49
+ --seg-h-sm:30px;
49
50
  --icon-square:28px;
50
51
  }
package/tokens/theme.css CHANGED
@@ -38,7 +38,7 @@
38
38
  --sh-card:0 1px 2px rgba(14,16,36,.04),0 0 0 1px rgba(14,16,36,.04);
39
39
  --sh-float:0 12px 32px -8px rgba(14,16,36,.22),0 2px 6px rgba(14,16,36,.08),0 0 0 1px rgba(14,16,36,.05);
40
40
  --sh-sheet:0 -8px 40px -8px rgba(14,16,36,.24);
41
- --sh-thumb:0 2px 6px rgba(0,0,0,.25);--sh-seg:0 1px 3px rgba(0,0,0,.12),0 0 0 .5px rgba(0,0,0,.04);
41
+ --sh-thumb:0 2px 6px rgba(0,0,0,.25);--sh-seg:0 1px 2px rgba(0,0,0,.14),0 3px 8px -2px rgba(0,0,0,.12),0 0 0 .5px var(--sep);
42
42
  --blur:saturate(180%) blur(22px);
43
43
  --scrim:rgba(10,11,20,.42);
44
44
  --dash:rgba(255,255,255,.7);