@liquidityio/brand 2.3.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 +110 -0
- package/assets/logo/favicon.svg +6 -0
- package/assets/logo/logo-mono.svg +6 -0
- package/assets/logo/logo-white.svg +5 -0
- package/assets/logo/logo.svg +12 -0
- package/assets/logo/wordmark-white.svg +4 -0
- package/assets/logo/wordmark.svg +4 -0
- package/package.json +39 -0
- package/src/brand-palettes.css +175 -0
- package/src/brand.json +75 -0
- package/src/fonts.ts +45 -0
- package/src/index.ts +8 -0
- package/src/liquidity-tw-additions.css +21 -0
- package/src/tamagui-config.ts +9 -0
- package/src/tw-liquidity.css +9 -0
- package/src/types.ts +66 -0
package/README.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# @liquidityio/brand
|
|
2
|
+
|
|
3
|
+
Liquidity's org config, theme seeds, fonts, and logo assets. Thin wrapper over [`@hanzo/branding`](https://github.com/hanzoai/branding).
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @liquidityio/brand
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
### Tamagui
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { tamaguiConfig } from '@liquidityio/brand'
|
|
17
|
+
import { GuiProvider } from '@hanzo/gui'
|
|
18
|
+
|
|
19
|
+
<GuiProvider config={tamaguiConfig}>
|
|
20
|
+
<App />
|
|
21
|
+
</GuiProvider>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Tailwind / shadcn
|
|
25
|
+
|
|
26
|
+
One import in your app's main CSS:
|
|
27
|
+
|
|
28
|
+
```css
|
|
29
|
+
@import '@liquidityio/brand/tw-liquidity.css';
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This pulls in `tailwindcss`, Liquidity's easing/fonts, the generated palettes, and the shadcn semantic color mappings — in the right order.
|
|
33
|
+
|
|
34
|
+
### Brand data
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import { config, brandIdentity } from '@liquidityio/brand'
|
|
38
|
+
import type { BrandIdentity, OrgConfig } from '@liquidityio/brand'
|
|
39
|
+
import brandJson from '@liquidityio/brand/brand.json'
|
|
40
|
+
|
|
41
|
+
// Logo assets
|
|
42
|
+
// @liquidityio/brand/assets/logo/logo.svg
|
|
43
|
+
// @liquidityio/brand/assets/logo/favicon.svg
|
|
44
|
+
// @liquidityio/brand/assets/logo/wordmark.svg
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Structure
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
src/
|
|
51
|
+
├── brand.json # identity + theme seeds (source of truth)
|
|
52
|
+
├── brand-palettes.css # generated by prebuild (gitignored)
|
|
53
|
+
├── liquidity-tw-additions.css # org-specific non-color TW tokens (easing, fonts)
|
|
54
|
+
├── tw-liquidity.css # bundle: tailwind + additions + palettes + semantic
|
|
55
|
+
├── fonts.ts # Liquidity font defs (pplxSans)
|
|
56
|
+
├── tamagui-config.ts # calls createTamaguiConfig
|
|
57
|
+
├── types.ts # BrandIdentity, OrgConfig
|
|
58
|
+
└── index.ts # re-exports config, brandIdentity, tamaguiConfig
|
|
59
|
+
assets/
|
|
60
|
+
└── logo/ # logo, logo-mono, logo-white, wordmark, favicon (SVG)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Exports
|
|
64
|
+
|
|
65
|
+
| Path | What |
|
|
66
|
+
|------|------|
|
|
67
|
+
| `@liquidityio/brand` | `config`, `brandIdentity`, `tamaguiConfig`, types |
|
|
68
|
+
| `@liquidityio/brand/brand.json` | Raw brand data |
|
|
69
|
+
| `@liquidityio/brand/tw-liquidity.css` | Single CSS bundle for apps |
|
|
70
|
+
| `@liquidityio/brand/assets/*` | Logo files |
|
|
71
|
+
|
|
72
|
+
## How it works
|
|
73
|
+
|
|
74
|
+
Almost everything — theme engine, palette generation, components, shadcn mappings — lives in `@hanzo/branding`. This package just provides Liquidity-specific data:
|
|
75
|
+
|
|
76
|
+
- **`brand.json`** — identity (name, domains, social, etc.) and 7 theme seeds
|
|
77
|
+
- **`fonts.ts`** — pplxSans font definitions
|
|
78
|
+
- **`liquidity-tw-additions.css`** — easing curves and font families
|
|
79
|
+
- **`tamagui-config.ts`** — calls `createTamaguiConfig` from `@hanzo/branding/tg-config` with our seeds and fonts
|
|
80
|
+
|
|
81
|
+
The `prebuild` script runs `generate-palettes` (shipped by `@hanzo/branding`), which reads `src/brand.json` and writes `src/brand-palettes.css`.
|
|
82
|
+
|
|
83
|
+
## Build
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
pnpm build # runs prebuild (generate-palettes), then tsup
|
|
87
|
+
pnpm tc # typecheck
|
|
88
|
+
pnpm dev # watch mode
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Publish
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pnpm pub # bump patch
|
|
95
|
+
pnpm pub minor # bump minor
|
|
96
|
+
pnpm pub major # bump major
|
|
97
|
+
pnpm pub 2.0.0 # exact version
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The script builds, bumps version, commits as `v{version}`, tags, and publishes. It refuses to run on a dirty tree. Push is left to you:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
git push && git push --tags
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Consumers
|
|
107
|
+
|
|
108
|
+
- `liquidityio/exchange` — securities exchange frontend
|
|
109
|
+
- `liquidityio/id` — auth + onboarding app
|
|
110
|
+
- `liquidityio/superadmin` — operator admin panel
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 1024 1024">
|
|
2
|
+
<rect width="1024" height="1024" rx="200" fill="#111827"/>
|
|
3
|
+
<path d="M 220 220 L 220 720 L 680 720 L 680 620 L 330 620 L 330 220 Z" fill="white"/>
|
|
4
|
+
<path d="M 400 500 Q 500 420 600 500 Q 700 580 800 500" stroke="rgba(255,255,255,0.35)" stroke-width="12" fill="none" stroke-linecap="round"/>
|
|
5
|
+
<path d="M 400 560 Q 500 480 600 560 Q 700 640 800 560" stroke="rgba(255,255,255,0.2)" stroke-width="8" fill="none" stroke-linecap="round"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
|
|
2
|
+
<rect width="1024" height="1024" rx="200" fill="#111827"/>
|
|
3
|
+
<path d="M 220 220 L 220 720 L 680 720 L 680 620 L 330 620 L 330 220 Z" fill="white"/>
|
|
4
|
+
<path d="M 400 500 Q 500 420 600 500 Q 700 580 800 500" stroke="rgba(255,255,255,0.35)" stroke-width="12" fill="none" stroke-linecap="round"/>
|
|
5
|
+
<path d="M 400 560 Q 500 480 600 560 Q 700 640 800 560" stroke="rgba(255,255,255,0.2)" stroke-width="8" fill="none" stroke-linecap="round"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
|
|
2
|
+
<path d="M 220 220 L 220 720 L 680 720 L 680 620 L 330 620 L 330 220 Z" fill="white"/>
|
|
3
|
+
<path d="M 400 500 Q 500 420 600 500 Q 700 580 800 500" stroke="rgba(255,255,255,0.5)" stroke-width="12" fill="none" stroke-linecap="round"/>
|
|
4
|
+
<path d="M 400 560 Q 500 480 600 560 Q 700 640 800 560" stroke="rgba(255,255,255,0.3)" stroke-width="8" fill="none" stroke-linecap="round"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="lqdtyGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#3B82F6"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#1D4ED8"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect width="1024" height="1024" rx="200" fill="url(#lqdtyGrad)"/>
|
|
9
|
+
<path d="M 220 220 L 220 720 L 680 720 L 680 620 L 330 620 L 330 220 Z" fill="white"/>
|
|
10
|
+
<path d="M 400 500 Q 500 420 600 500 Q 700 580 800 500" stroke="rgba(255,255,255,0.4)" stroke-width="12" fill="none" stroke-linecap="round"/>
|
|
11
|
+
<path d="M 400 560 Q 500 480 600 560 Q 700 640 800 560" stroke="rgba(255,255,255,0.25)" stroke-width="8" fill="none" stroke-linecap="round"/>
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="80" viewBox="0 0 400 80">
|
|
2
|
+
<text x="10" y="58" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
3
|
+
font-size="52" font-weight="700" letter-spacing="-1" fill="#111827">LIQUIDITY</text>
|
|
4
|
+
</svg>
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@liquidityio/brand",
|
|
3
|
+
"version": "2.3.0",
|
|
4
|
+
"description": "Org config, theme seeds, and assets for Liquidity",
|
|
5
|
+
"main": "./src/index.ts",
|
|
6
|
+
"types": "./src/index.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./src/index.ts",
|
|
9
|
+
"./brand.json": "./src/brand.json",
|
|
10
|
+
"./tw-liquidity.css": "./src/tw-liquidity.css",
|
|
11
|
+
"./assets/*": "./assets/*"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"src",
|
|
15
|
+
"assets"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"tc": "tsc --noEmit",
|
|
19
|
+
"prebuild": "generate-palettes",
|
|
20
|
+
"build": "tsup src/index.ts --format cjs,esm --dts --clean",
|
|
21
|
+
"dev": "tsup src/index.ts --format cjs,esm --dts --watch",
|
|
22
|
+
"pub": "./scripts/publish.sh"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@hanzo/branding": "^2.0.2"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"tsup": "^8.0.0",
|
|
29
|
+
"typescript": "^5.9.3"
|
|
30
|
+
},
|
|
31
|
+
"author": "Liquidity",
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "https://github.com/liquidityio/brand"
|
|
35
|
+
},
|
|
36
|
+
"publishConfig": {
|
|
37
|
+
"access": "public"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/* Generated by @hanzo/branding — do not edit manually */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--color-neutral-1: #fafafa;
|
|
5
|
+
--color-neutral-2: #f5f5f5;
|
|
6
|
+
--color-neutral-3: #ededed;
|
|
7
|
+
--color-neutral-4: #e0e0e0;
|
|
8
|
+
--color-neutral-5: #cccccc;
|
|
9
|
+
--color-neutral-6: #b3b3b3;
|
|
10
|
+
--color-neutral-7: #949494;
|
|
11
|
+
--color-neutral-8: #757575;
|
|
12
|
+
--color-neutral-9: #5c5c5c;
|
|
13
|
+
--color-neutral-10: #424242;
|
|
14
|
+
--color-neutral-11: #2e2e2e;
|
|
15
|
+
--color-neutral-12: #1a1a1a;
|
|
16
|
+
--color-primary-1: #f9fafb;
|
|
17
|
+
--color-primary-2: #f3f4f6;
|
|
18
|
+
--color-primary-3: #eaecf1;
|
|
19
|
+
--color-primary-4: #dadee7;
|
|
20
|
+
--color-primary-5: #bfc7d9;
|
|
21
|
+
--color-primary-6: #9daac8;
|
|
22
|
+
--color-primary-7: #7387b5;
|
|
23
|
+
--color-primary-8: #4e669c;
|
|
24
|
+
--color-primary-9: #3b4f7d;
|
|
25
|
+
--color-primary-10: #28385c;
|
|
26
|
+
--color-primary-11: #1b2741;
|
|
27
|
+
--color-primary-12: #0e1525;
|
|
28
|
+
--color-secondary-1: #faf9fb;
|
|
29
|
+
--color-secondary-2: #f4f2f8;
|
|
30
|
+
--color-secondary-3: #ece7f3;
|
|
31
|
+
--color-secondary-4: #dfd5ec;
|
|
32
|
+
--color-secondary-5: #c9b6e2;
|
|
33
|
+
--color-secondary-6: #ad8dd8;
|
|
34
|
+
--color-secondary-7: #8c5acd;
|
|
35
|
+
--color-secondary-8: #6c30ba;
|
|
36
|
+
--color-secondary-9: #542196;
|
|
37
|
+
--color-secondary-10: #3c1570;
|
|
38
|
+
--color-secondary-11: #290c50;
|
|
39
|
+
--color-secondary-12: #17052e;
|
|
40
|
+
--color-info-1: #f9f9fb;
|
|
41
|
+
--color-info-2: #f2f4f8;
|
|
42
|
+
--color-info-3: #e7ebf3;
|
|
43
|
+
--color-info-4: #d4dced;
|
|
44
|
+
--color-info-5: #b4c3e4;
|
|
45
|
+
--color-info-6: #8ba4da;
|
|
46
|
+
--color-info-7: #577dd1;
|
|
47
|
+
--color-info-8: #2d5abe;
|
|
48
|
+
--color-info-9: #1e459a;
|
|
49
|
+
--color-info-10: #123072;
|
|
50
|
+
--color-info-11: #0a2152;
|
|
51
|
+
--color-info-12: #04122f;
|
|
52
|
+
--color-success-1: #f9fbfa;
|
|
53
|
+
--color-success-2: #f2f8f4;
|
|
54
|
+
--color-success-3: #e7f3ec;
|
|
55
|
+
--color-success-4: #d5ecdd;
|
|
56
|
+
--color-success-5: #b6e2c6;
|
|
57
|
+
--color-success-6: #8ed7a9;
|
|
58
|
+
--color-success-7: #5ccc85;
|
|
59
|
+
--color-success-8: #33b864;
|
|
60
|
+
--color-success-9: #23944d;
|
|
61
|
+
--color-success-10: #166e37;
|
|
62
|
+
--color-success-11: #0d4f25;
|
|
63
|
+
--color-success-12: #062d14;
|
|
64
|
+
--color-warning-1: #fbfaf8;
|
|
65
|
+
--color-warning-2: #f8f5f1;
|
|
66
|
+
--color-warning-3: #f4eee6;
|
|
67
|
+
--color-warning-4: #efe1d2;
|
|
68
|
+
--color-warning-5: #e7ceb1;
|
|
69
|
+
--color-warning-6: #dfb686;
|
|
70
|
+
--color-warning-7: #d9994f;
|
|
71
|
+
--color-warning-8: #c87b23;
|
|
72
|
+
--color-warning-9: #a26116;
|
|
73
|
+
--color-warning-10: #79460c;
|
|
74
|
+
--color-warning-11: #573105;
|
|
75
|
+
--color-warning-12: #321b01;
|
|
76
|
+
--color-danger-1: #fbf9f9;
|
|
77
|
+
--color-danger-2: #f7f2f2;
|
|
78
|
+
--color-danger-3: #f3e8e8;
|
|
79
|
+
--color-danger-4: #ebd6d6;
|
|
80
|
+
--color-danger-5: #e0b8b8;
|
|
81
|
+
--color-danger-6: #d59090;
|
|
82
|
+
--color-danger-7: #c95f5f;
|
|
83
|
+
--color-danger-8: #b43636;
|
|
84
|
+
--color-danger-9: #912626;
|
|
85
|
+
--color-danger-10: #6c1919;
|
|
86
|
+
--color-danger-11: #4d0f0f;
|
|
87
|
+
--color-danger-12: #2c0707;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
[data-color-scheme='dark'] {
|
|
91
|
+
--color-neutral-1: #0d0d0d;
|
|
92
|
+
--color-neutral-2: #1a1a1a;
|
|
93
|
+
--color-neutral-3: #242424;
|
|
94
|
+
--color-neutral-4: #303030;
|
|
95
|
+
--color-neutral-5: #424242;
|
|
96
|
+
--color-neutral-6: #575757;
|
|
97
|
+
--color-neutral-7: #707070;
|
|
98
|
+
--color-neutral-8: #8c8c8c;
|
|
99
|
+
--color-neutral-9: #a8a8a8;
|
|
100
|
+
--color-neutral-10: #c2c2c2;
|
|
101
|
+
--color-neutral-11: #dbdbdb;
|
|
102
|
+
--color-neutral-12: #f0f0f0;
|
|
103
|
+
--color-primary-1: #070b12;
|
|
104
|
+
--color-primary-2: #0f1524;
|
|
105
|
+
--color-primary-3: #161e32;
|
|
106
|
+
--color-primary-4: #1f2a42;
|
|
107
|
+
--color-primary-5: #2c3a58;
|
|
108
|
+
--color-primary-6: #3c4d71;
|
|
109
|
+
--color-primary-7: #51648f;
|
|
110
|
+
--color-primary-8: #7081a9;
|
|
111
|
+
--color-primary-9: #95a1bb;
|
|
112
|
+
--color-primary-10: #b6bdcd;
|
|
113
|
+
--color-primary-11: #d5d9e1;
|
|
114
|
+
--color-primary-12: #eeeff2;
|
|
115
|
+
--color-secondary-1: #0b0317;
|
|
116
|
+
--color-secondary-2: #17072c;
|
|
117
|
+
--color-secondary-3: #200b3c;
|
|
118
|
+
--color-secondary-4: #2c124f;
|
|
119
|
+
--color-secondary-5: #3d1b69;
|
|
120
|
+
--color-secondary-6: #502885;
|
|
121
|
+
--color-secondary-7: #693aa7;
|
|
122
|
+
--color-secondary-8: #865abe;
|
|
123
|
+
--color-secondary-9: #a487ca;
|
|
124
|
+
--color-secondary-10: #bfadd6;
|
|
125
|
+
--color-secondary-11: #dad1e6;
|
|
126
|
+
--color-secondary-12: #efecf3;
|
|
127
|
+
--color-info-1: #020917;
|
|
128
|
+
--color-info-2: #06122d;
|
|
129
|
+
--color-info-3: #0a1a3e;
|
|
130
|
+
--color-info-4: #102451;
|
|
131
|
+
--color-info-5: #19336b;
|
|
132
|
+
--color-info-6: #264488;
|
|
133
|
+
--color-info-7: #365baa;
|
|
134
|
+
--color-info-8: #5778c1;
|
|
135
|
+
--color-info-9: #859bcc;
|
|
136
|
+
--color-info-10: #acbad8;
|
|
137
|
+
--color-info-11: #d1d7e6;
|
|
138
|
+
--color-info-12: #eceef4;
|
|
139
|
+
--color-success-1: #03160a;
|
|
140
|
+
--color-success-2: #072c15;
|
|
141
|
+
--color-success-3: #0c3b1d;
|
|
142
|
+
--color-success-4: #134e29;
|
|
143
|
+
--color-success-5: #1d6838;
|
|
144
|
+
--color-success-6: #2a844b;
|
|
145
|
+
--color-success-7: #3ba562;
|
|
146
|
+
--color-success-8: #5cbd80;
|
|
147
|
+
--color-success-9: #88c9a0;
|
|
148
|
+
--color-success-10: #aed6bd;
|
|
149
|
+
--color-success-11: #d1e5d9;
|
|
150
|
+
--color-success-12: #ecf3ef;
|
|
151
|
+
--color-warning-1: #190e01;
|
|
152
|
+
--color-warning-2: #301b03;
|
|
153
|
+
--color-warning-3: #412606;
|
|
154
|
+
--color-warning-4: #56330b;
|
|
155
|
+
--color-warning-5: #714614;
|
|
156
|
+
--color-warning-6: #8f5b1f;
|
|
157
|
+
--color-warning-7: #b2752f;
|
|
158
|
+
--color-warning-8: #c89150;
|
|
159
|
+
--color-warning-9: #d1ab80;
|
|
160
|
+
--color-warning-10: #dbc4a9;
|
|
161
|
+
--color-warning-11: #e8dccf;
|
|
162
|
+
--color-warning-12: #f4f0eb;
|
|
163
|
+
--color-danger-1: #160404;
|
|
164
|
+
--color-danger-2: #2b0808;
|
|
165
|
+
--color-danger-3: #3a0d0d;
|
|
166
|
+
--color-danger-4: #4d1414;
|
|
167
|
+
--color-danger-5: #661f1f;
|
|
168
|
+
--color-danger-6: #812c2c;
|
|
169
|
+
--color-danger-7: #a23e3e;
|
|
170
|
+
--color-danger-8: #ba5e5e;
|
|
171
|
+
--color-danger-9: #c78a8a;
|
|
172
|
+
--color-danger-10: #d5afaf;
|
|
173
|
+
--color-danger-11: #e5d2d2;
|
|
174
|
+
--color-danger-12: #f3ecec;
|
|
175
|
+
}
|
package/src/brand.json
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"identity": {
|
|
3
|
+
"name": "Liquidity",
|
|
4
|
+
"title": "Liquidity | Regulated Digital Assets",
|
|
5
|
+
"description": "Regulated digital asset exchange",
|
|
6
|
+
"shortName": "LQDTY",
|
|
7
|
+
"labsName": "Liquidity",
|
|
8
|
+
"legalEntity": "Liquidity Inc.",
|
|
9
|
+
"walletName": "Liquidity Wallet",
|
|
10
|
+
"protocolName": "Liquidity Protocol",
|
|
11
|
+
"copyrightHolder": "Liquidity Inc.",
|
|
12
|
+
"appDomain": "liquidity.io",
|
|
13
|
+
"docsDomain": "docs.liquidity.io",
|
|
14
|
+
"infoDomain": "info.liquidity.io",
|
|
15
|
+
"gatewayDomain": "api.liquidity.io",
|
|
16
|
+
"wsDomain": "ws.liquidity.io",
|
|
17
|
+
"helpUrl": "https://docs.liquidity.io",
|
|
18
|
+
"termsUrl": "https://liquidity.io/terms",
|
|
19
|
+
"privacyUrl": "https://liquidity.io/privacy",
|
|
20
|
+
"downloadUrl": "https://liquidity.io/wallet",
|
|
21
|
+
"complianceEmail": "compliance@liquidity.io",
|
|
22
|
+
"supportEmail": "support@liquidity.io",
|
|
23
|
+
"twitter": "https://x.com/liquidityio",
|
|
24
|
+
"farcaster": "",
|
|
25
|
+
"linkedin": "",
|
|
26
|
+
"tiktok": "",
|
|
27
|
+
"github": "https://github.com/liquidityio",
|
|
28
|
+
"discord": "",
|
|
29
|
+
"logoUrl": "https://cdn.jsdelivr.net/npm/@liquidityio/brand@latest/assets/logo/logo.svg",
|
|
30
|
+
"faviconUrl": "https://cdn.jsdelivr.net/npm/@liquidityio/brand@latest/assets/logo/favicon.svg"
|
|
31
|
+
},
|
|
32
|
+
"themes": {
|
|
33
|
+
"neutral": { "seed": "#808080" },
|
|
34
|
+
"primary": { "seed": "#1a2744" },
|
|
35
|
+
"secondary": { "seed": "#721be4" },
|
|
36
|
+
"info": { "seed": "#2563eb" },
|
|
37
|
+
"success": { "seed": "#16a34a" },
|
|
38
|
+
"warning": { "seed": "#d97706" },
|
|
39
|
+
"danger": { "seed": "#dc2626" }
|
|
40
|
+
},
|
|
41
|
+
"chains": {
|
|
42
|
+
"defaultChainId": 8675309,
|
|
43
|
+
"supported": [
|
|
44
|
+
8675309,
|
|
45
|
+
8675310,
|
|
46
|
+
8675311,
|
|
47
|
+
1337,
|
|
48
|
+
31337
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"rpc": {
|
|
52
|
+
"1": "https://eth.llamarpc.com",
|
|
53
|
+
"494949": "https://rpc.liquidity.io",
|
|
54
|
+
"42161": "https://arb1.arbitrum.io/rpc",
|
|
55
|
+
"8453": "https://mainnet.base.org",
|
|
56
|
+
"137": "https://polygon-rpc.com",
|
|
57
|
+
"8675309": "https://rpc.main.satschel.com",
|
|
58
|
+
"8675310": "https://rpc.test.satschel.com",
|
|
59
|
+
"8675311": "https://rpc.dev.satschel.com",
|
|
60
|
+
"1337": "http://localhost:8545/ext/bc/C/rpc",
|
|
61
|
+
"31337": "http://localhost:8545/ext/bc/C/rpc"
|
|
62
|
+
},
|
|
63
|
+
"api": {
|
|
64
|
+
"graphql": "",
|
|
65
|
+
"gateway": "https://api.liquidity.io",
|
|
66
|
+
"insights": "https://insights.satschel.com"
|
|
67
|
+
},
|
|
68
|
+
"iam": {
|
|
69
|
+
"provider": "https://id.liquidity.io",
|
|
70
|
+
"clientId": "liquidity-app"
|
|
71
|
+
},
|
|
72
|
+
"walletConnect": {
|
|
73
|
+
"projectId": ""
|
|
74
|
+
}
|
|
75
|
+
}
|
package/src/fonts.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { FontDef } from '@hanzo/branding/tg-config'
|
|
2
|
+
|
|
3
|
+
export const bodyFont: FontDef = {
|
|
4
|
+
family: '"pplxSans", ui-sans-serif, system-ui, -apple-system, sans-serif',
|
|
5
|
+
size: {
|
|
6
|
+
1: 11, 2: 12, 3: 13, 4: 14, true: 14, 5: 15, 6: 16,
|
|
7
|
+
7: 18, 8: 20, 9: 24, 10: 30, 11: 36, 12: 44,
|
|
8
|
+
13: 52, 14: 62, 15: 74, 16: 88,
|
|
9
|
+
},
|
|
10
|
+
lineHeight: {
|
|
11
|
+
1: 16, 2: 18, 3: 19, 4: 21, true: 21, 5: 22, 6: 24,
|
|
12
|
+
7: 27, 8: 30, 9: 34, 10: 42, 11: 50, 12: 60,
|
|
13
|
+
13: 70, 14: 82, 15: 98, 16: 116,
|
|
14
|
+
},
|
|
15
|
+
weight: { 1: '400', 6: '500' },
|
|
16
|
+
letterSpacing: { 1: 0.15, 4: 0.1, true: 0.1, 6: 0, 8: -0.35, 12: -0.75 },
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const headingFont: FontDef = {
|
|
20
|
+
family: '"pplxSans", ui-sans-serif, system-ui, -apple-system, sans-serif',
|
|
21
|
+
size: {
|
|
22
|
+
1: 12, 2: 14, 3: 16, 4: 18, true: 18, 5: 20,
|
|
23
|
+
6: 24, 7: 30, 8: 36, 9: 44, 10: 52, 11: 62, 12: 74,
|
|
24
|
+
},
|
|
25
|
+
lineHeight: {
|
|
26
|
+
1: 16, 2: 18, 3: 22, 4: 24, true: 24, 5: 26,
|
|
27
|
+
6: 30, 7: 36, 8: 44, 9: 52, 10: 62, 11: 74, 12: 86,
|
|
28
|
+
},
|
|
29
|
+
weight: { 1: '500', 6: '550' },
|
|
30
|
+
letterSpacing: { 1: 0.2, 4: 0, 6: -0.2, 8: -0.5, 12: -1 },
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const monoFont: FontDef = {
|
|
34
|
+
family: '"pplxSansMono", ui-monospace, monospace',
|
|
35
|
+
size: {
|
|
36
|
+
1: 11, 2: 12, 3: 13, 4: 14, true: 14, 5: 15,
|
|
37
|
+
6: 16, 7: 18, 8: 20, 9: 24, 10: 30,
|
|
38
|
+
},
|
|
39
|
+
lineHeight: {
|
|
40
|
+
1: 18, 2: 20, 3: 22, 4: 24, true: 24, 5: 26,
|
|
41
|
+
6: 28, 7: 30, 8: 34, 9: 40, 10: 48,
|
|
42
|
+
},
|
|
43
|
+
weight: { 1: '400' },
|
|
44
|
+
letterSpacing: { 4: 0, true: 0 },
|
|
45
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OrgConfig } from './types'
|
|
2
|
+
import brandJson from './brand.json'
|
|
3
|
+
|
|
4
|
+
export const config: OrgConfig = brandJson as OrgConfig
|
|
5
|
+
export const brandIdentity = config.identity as Required<typeof config.identity>
|
|
6
|
+
|
|
7
|
+
export { tamaguiConfig } from './tamagui-config'
|
|
8
|
+
export type { BrandIdentity, OrgConfig } from './types'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
Liquidity-specific Tailwind additions (non-color tokens)
|
|
3
|
+
============================================================
|
|
4
|
+
Org-specific easing curves and typography on top of @hanzo/branding.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@theme {
|
|
8
|
+
/* Easing */
|
|
9
|
+
--ease-out-cubic: cubic-bezier(.33, 1, .68, 1);
|
|
10
|
+
--ease-in-out-cubic: cubic-bezier(.65, 0, .35, 1);
|
|
11
|
+
--ease-out-soft: cubic-bezier(.36, 1.3, .64, 1);
|
|
12
|
+
--ease-in-out-quart: cubic-bezier(.76, 0, .24, 1);
|
|
13
|
+
--ease-out-quint: cubic-bezier(.22, 1, .36, 1);
|
|
14
|
+
--ease-in-cubic: cubic-bezier(.32, 0, .67, 0);
|
|
15
|
+
--ease-in-out-sine: cubic-bezier(.37, 0, .63, 1);
|
|
16
|
+
|
|
17
|
+
/* Typography */
|
|
18
|
+
--font-sans: "pplxSans", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
19
|
+
--font-mono: "pplxSansMono", ui-monospace, monospace;
|
|
20
|
+
--font-serif: "pplxSerif", ui-serif, Georgia, serif;
|
|
21
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createTamaguiConfig, type ThemesConfig } from '@hanzo/branding/tg-config'
|
|
2
|
+
import brandJson from './brand.json'
|
|
3
|
+
import { bodyFont, headingFont, monoFont } from './fonts'
|
|
4
|
+
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
+
export const tamaguiConfig: any = createTamaguiConfig({
|
|
7
|
+
themes: brandJson.themes as ThemesConfig,
|
|
8
|
+
fonts: { body: bodyFont, heading: headingFont, mono: monoFont },
|
|
9
|
+
})
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { ThemesConfig } from '@hanzo/branding/tg-config'
|
|
2
|
+
|
|
3
|
+
/** Brand identity — name, domains, social, assets. */
|
|
4
|
+
export interface BrandIdentity {
|
|
5
|
+
name: string
|
|
6
|
+
title: string
|
|
7
|
+
description: string
|
|
8
|
+
shortName: string
|
|
9
|
+
labsName: string
|
|
10
|
+
legalEntity: string
|
|
11
|
+
walletName: string
|
|
12
|
+
protocolName: string
|
|
13
|
+
copyrightHolder: string
|
|
14
|
+
|
|
15
|
+
// Domains
|
|
16
|
+
appDomain: string
|
|
17
|
+
docsDomain: string
|
|
18
|
+
infoDomain: string
|
|
19
|
+
gatewayDomain: string
|
|
20
|
+
wsDomain: string
|
|
21
|
+
|
|
22
|
+
// Links
|
|
23
|
+
helpUrl: string
|
|
24
|
+
termsUrl: string
|
|
25
|
+
privacyUrl: string
|
|
26
|
+
downloadUrl: string
|
|
27
|
+
|
|
28
|
+
// Contact
|
|
29
|
+
complianceEmail: string
|
|
30
|
+
supportEmail: string
|
|
31
|
+
|
|
32
|
+
// Social
|
|
33
|
+
twitter: string
|
|
34
|
+
farcaster: string
|
|
35
|
+
linkedin: string
|
|
36
|
+
tiktok: string
|
|
37
|
+
github: string
|
|
38
|
+
discord: string
|
|
39
|
+
|
|
40
|
+
// Assets
|
|
41
|
+
logoUrl: string
|
|
42
|
+
faviconUrl: string
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Full org config — the shape of brand.json. */
|
|
46
|
+
export interface OrgConfig {
|
|
47
|
+
identity: Partial<BrandIdentity>
|
|
48
|
+
themes: ThemesConfig
|
|
49
|
+
chains: {
|
|
50
|
+
defaultChainId: number
|
|
51
|
+
supported: number[]
|
|
52
|
+
}
|
|
53
|
+
rpc: Record<string, string>
|
|
54
|
+
api: {
|
|
55
|
+
graphql: string
|
|
56
|
+
gateway: string
|
|
57
|
+
insights: string
|
|
58
|
+
}
|
|
59
|
+
iam?: {
|
|
60
|
+
provider: string
|
|
61
|
+
clientId: string
|
|
62
|
+
}
|
|
63
|
+
walletConnect: {
|
|
64
|
+
projectId: string
|
|
65
|
+
}
|
|
66
|
+
}
|