@paraxe/design 1.0.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/dist/.loba-build.json +13 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +571 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +305 -0
- package/package.json +49 -0
- package/src/README.md +62 -0
- package/src/components.css +3743 -0
- package/src/env.d.ts +7 -0
- package/src/index.ts +354 -0
- package/src/presets/corporate.css +32 -0
- package/src/presets/creative.css +32 -0
- package/src/presets/default.css +58 -0
- package/src/presets/editorial.css +32 -0
- package/src/presets/fashion.css +32 -0
- package/src/presets/friendly.css +32 -0
- package/src/presets/future.css +32 -0
- package/src/presets/industrial.css +32 -0
- package/src/presets/local-business.css +32 -0
- package/src/presets/minimal.css +32 -0
- package/src/presets/premium.css +32 -0
- package/src/presets/tech.css +32 -0
- package/src/tailwind.css +106 -0
- package/src/themes/crimson.css +45 -0
- package/src/themes/dark.css +35 -0
- package/src/themes/default.css +471 -0
- package/src/themes/electric.css +45 -0
- package/src/themes/forge.css +30 -0
- package/src/themes/light.css +34 -0
- package/src/themes/minimal.css +50 -0
- package/src/themes/mocha.css +44 -0
- package/src/themes/orchid.css +45 -0
- package/src/themes/sand.css +45 -0
- package/src/tokens.css +635 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
@loba/design — presets/local-business.css
|
|
3
|
+
LAYER 3 — PERSONALITY: Warm, approachable, community-rooted
|
|
4
|
+
Rubik display + Nunito Sans body
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
@import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700;800;900&family=Nunito+Sans:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@300;400;500;600;700;800&display=swap");
|
|
8
|
+
|
|
9
|
+
:root {
|
|
10
|
+
--font-family-display: "Rubik", ui-sans-serif, system-ui, sans-serif;
|
|
11
|
+
--font-family-body: "Nunito Sans", ui-sans-serif, system-ui, sans-serif;
|
|
12
|
+
--font-family-mono: "JetBrains Mono", "Fira Code", monospace;
|
|
13
|
+
--font-weight-light: 300;
|
|
14
|
+
--font-weight-regular: 400;
|
|
15
|
+
--font-weight-medium: 500;
|
|
16
|
+
--font-weight-semibold: 600;
|
|
17
|
+
--font-weight-bold: 700;
|
|
18
|
+
--font-weight-extrabold: 800;
|
|
19
|
+
--font-size-base: 1rem;
|
|
20
|
+
--space-4: 1rem;
|
|
21
|
+
--radius-md: 0.75rem;
|
|
22
|
+
--motion-duration-normal: 300ms;
|
|
23
|
+
--motion-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
24
|
+
--motion-ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
25
|
+
--shadow-elevation-low: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
26
|
+
--glass-blur: 16px;
|
|
27
|
+
--button-radius: var(--radius-full);
|
|
28
|
+
--button-padding-x: 1.5rem;
|
|
29
|
+
--button-padding-y: 0.75rem;
|
|
30
|
+
--card-radius: var(--radius-xl);
|
|
31
|
+
--nav-height: 4.5rem;
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
@loba/design — presets/minimal.css
|
|
3
|
+
LAYER 3 — PERSONALITY: Clean, airy, minimal
|
|
4
|
+
Outfit display + Karla body
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@200;300;400;500;600;700;800&family=Karla:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@300;400;500;600;700;800&display=swap");
|
|
8
|
+
|
|
9
|
+
:root {
|
|
10
|
+
--font-family-display: "Outfit", ui-sans-serif, system-ui, sans-serif;
|
|
11
|
+
--font-family-body: "Karla", ui-sans-serif, system-ui, sans-serif;
|
|
12
|
+
--font-family-mono: "JetBrains Mono", "Fira Code", monospace;
|
|
13
|
+
--font-weight-light: 200;
|
|
14
|
+
--font-weight-regular: 400;
|
|
15
|
+
--font-weight-medium: 500;
|
|
16
|
+
--font-weight-semibold: 600;
|
|
17
|
+
--font-weight-bold: 700;
|
|
18
|
+
--font-weight-extrabold: 800;
|
|
19
|
+
--font-size-base: 1rem;
|
|
20
|
+
--space-4: 1rem;
|
|
21
|
+
--radius-md: 0.375rem;
|
|
22
|
+
--motion-duration-normal: 300ms;
|
|
23
|
+
--motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
24
|
+
--motion-ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
25
|
+
--shadow-elevation-low: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
26
|
+
--glass-blur: 16px;
|
|
27
|
+
--button-radius: var(--radius-md);
|
|
28
|
+
--button-padding-x: 1.25rem;
|
|
29
|
+
--button-padding-y: 0.625rem;
|
|
30
|
+
--card-radius: var(--radius-md);
|
|
31
|
+
--nav-height: 4rem;
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
@loba/design — presets/premium.css
|
|
3
|
+
LAYER 3 — PERSONALITY: Premium agency signature
|
|
4
|
+
Syne display + Manrope body
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
@import url("https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&family=Manrope:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@300;400;500;600;700;800&display=swap");
|
|
8
|
+
|
|
9
|
+
:root {
|
|
10
|
+
--font-family-display: "Syne", ui-sans-serif, system-ui, sans-serif;
|
|
11
|
+
--font-family-body: "Manrope", ui-sans-serif, system-ui, sans-serif;
|
|
12
|
+
--font-family-mono: "JetBrains Mono", "Fira Code", monospace;
|
|
13
|
+
--font-weight-light: 300;
|
|
14
|
+
--font-weight-regular: 400;
|
|
15
|
+
--font-weight-medium: 500;
|
|
16
|
+
--font-weight-semibold: 600;
|
|
17
|
+
--font-weight-bold: 700;
|
|
18
|
+
--font-weight-extrabold: 800;
|
|
19
|
+
--font-size-base: 1rem;
|
|
20
|
+
--space-4: 1rem;
|
|
21
|
+
--radius-md: 0.375rem;
|
|
22
|
+
--motion-duration-normal: 300ms;
|
|
23
|
+
--motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
24
|
+
--motion-ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
25
|
+
--shadow-elevation-low: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
26
|
+
--glass-blur: 16px;
|
|
27
|
+
--button-radius: var(--radius-full);
|
|
28
|
+
--button-padding-x: 1.5rem;
|
|
29
|
+
--button-padding-y: 0.75rem;
|
|
30
|
+
--card-radius: var(--radius-lg);
|
|
31
|
+
--nav-height: 4.5rem;
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
@loba/design — presets/tech.css
|
|
3
|
+
LAYER 3 — PERSONALITY: Modern, precise, technical
|
|
4
|
+
Space Grotesk display + IBM Plex Sans body
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=IBM+Plex+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@300;400;500;600;700;800&display=swap");
|
|
8
|
+
|
|
9
|
+
:root {
|
|
10
|
+
--font-family-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
|
|
11
|
+
--font-family-body: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
|
|
12
|
+
--font-family-mono: "JetBrains Mono", "Fira Code", monospace;
|
|
13
|
+
--font-weight-light: 300;
|
|
14
|
+
--font-weight-regular: 400;
|
|
15
|
+
--font-weight-medium: 500;
|
|
16
|
+
--font-weight-semibold: 600;
|
|
17
|
+
--font-weight-bold: 700;
|
|
18
|
+
--font-weight-extrabold: 800;
|
|
19
|
+
--font-size-base: 1rem;
|
|
20
|
+
--space-4: 1rem;
|
|
21
|
+
--radius-md: 0.25rem;
|
|
22
|
+
--motion-duration-normal: 200ms;
|
|
23
|
+
--motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
24
|
+
--motion-ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
25
|
+
--shadow-elevation-low: 0 1px 3px rgba(0, 0, 0, 0.12);
|
|
26
|
+
--glass-blur: 12px;
|
|
27
|
+
--button-radius: var(--radius-base);
|
|
28
|
+
--button-padding-x: 1.25rem;
|
|
29
|
+
--button-padding-y: 0.5rem;
|
|
30
|
+
--card-radius: var(--radius-md);
|
|
31
|
+
--nav-height: 4rem;
|
|
32
|
+
}
|
package/src/tailwind.css
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
@loba/design — tailwind.css (optional bridge)
|
|
3
|
+
|
|
4
|
+
Maps Tailwind v4 `@theme` to the canonical Loba tokens.
|
|
5
|
+
Only import this when Tailwind v4 is used in a consumer project.
|
|
6
|
+
|
|
7
|
+
The canonical `:root` contract is defined in tokens.css / themes /
|
|
8
|
+
presets. This file only re-exposes those values as Tailwind utility
|
|
9
|
+
generators so `p-4`, `text-lg`, `rounded-md`, `shadow-md`, etc.
|
|
10
|
+
resolve against the Loba design tokens.
|
|
11
|
+
========================================================================== */
|
|
12
|
+
|
|
13
|
+
@theme {
|
|
14
|
+
/* ---- Spacing (maps Tailwind utilities → canonical tokens) ---- */
|
|
15
|
+
--spacing-0: var(--space-0);
|
|
16
|
+
--spacing-px: var(--space-px);
|
|
17
|
+
--spacing-0\.5: calc(var(--space-1) / 2);
|
|
18
|
+
--spacing-1: var(--space-1);
|
|
19
|
+
--spacing-1\.5: calc(var(--space-1) * 1.5);
|
|
20
|
+
--spacing-2: var(--space-2);
|
|
21
|
+
--spacing-2\.5: calc(var(--space-2) * 1.25);
|
|
22
|
+
--spacing-3: var(--space-3);
|
|
23
|
+
--spacing-3\.5: calc(var(--space-3) * 1.16667);
|
|
24
|
+
--spacing-4: var(--space-4);
|
|
25
|
+
--spacing-5: var(--space-5);
|
|
26
|
+
--spacing-6: var(--space-6);
|
|
27
|
+
--spacing-7: var(--space-7);
|
|
28
|
+
--spacing-8: var(--space-8);
|
|
29
|
+
--spacing-9: var(--space-9);
|
|
30
|
+
--spacing-10: var(--space-10);
|
|
31
|
+
--spacing-11: var(--space-11);
|
|
32
|
+
--spacing-12: var(--space-12);
|
|
33
|
+
--spacing-14: var(--space-14);
|
|
34
|
+
--spacing-16: var(--space-16);
|
|
35
|
+
--spacing-20: var(--space-20);
|
|
36
|
+
--spacing-24: var(--space-24);
|
|
37
|
+
--spacing-28: var(--space-28);
|
|
38
|
+
--spacing-32: var(--space-32);
|
|
39
|
+
--spacing-36: var(--space-36);
|
|
40
|
+
--spacing-40: var(--space-40);
|
|
41
|
+
--spacing-44: var(--space-44);
|
|
42
|
+
--spacing-48: var(--space-48);
|
|
43
|
+
--spacing-52: var(--space-52);
|
|
44
|
+
--spacing-56: var(--space-56);
|
|
45
|
+
--spacing-60: var(--space-60);
|
|
46
|
+
--spacing-64: var(--space-64);
|
|
47
|
+
--spacing-72: var(--space-72);
|
|
48
|
+
--spacing-80: var(--space-80);
|
|
49
|
+
--spacing-96: var(--space-96);
|
|
50
|
+
|
|
51
|
+
/* ---- Breakpoints ---- */
|
|
52
|
+
--breakpoint-sm: 640px;
|
|
53
|
+
--breakpoint-md: 768px;
|
|
54
|
+
--breakpoint-lg: 1024px;
|
|
55
|
+
--breakpoint-xl: 1280px;
|
|
56
|
+
--breakpoint-2xl: 1536px;
|
|
57
|
+
|
|
58
|
+
/* ---- Typography ---- */
|
|
59
|
+
--font-sans: var(--font-family-body);
|
|
60
|
+
--font-display: var(--font-family-display);
|
|
61
|
+
--font-mono: var(--font-family-mono);
|
|
62
|
+
|
|
63
|
+
--text-xs: var(--font-size-xs);
|
|
64
|
+
--text-sm: var(--font-size-sm);
|
|
65
|
+
--text-base: var(--font-size-base);
|
|
66
|
+
--text-lg: var(--font-size-lg);
|
|
67
|
+
--text-xl: var(--font-size-xl);
|
|
68
|
+
--text-2xl: var(--font-size-2xl);
|
|
69
|
+
--text-3xl: var(--font-size-3xl);
|
|
70
|
+
--text-4xl: var(--font-size-4xl);
|
|
71
|
+
--text-5xl: var(--font-size-5xl);
|
|
72
|
+
--text-6xl: var(--font-size-6xl);
|
|
73
|
+
--text-7xl: var(--font-size-7xl);
|
|
74
|
+
--text-8xl: var(--font-size-8xl);
|
|
75
|
+
--text-9xl: var(--font-size-9xl);
|
|
76
|
+
|
|
77
|
+
--leading-tight: var(--line-height-tight);
|
|
78
|
+
--leading-snug: var(--line-height-snug);
|
|
79
|
+
--leading-normal: var(--line-height-normal);
|
|
80
|
+
--leading-relaxed: var(--line-height-relaxed);
|
|
81
|
+
--leading-loose: var(--line-height-loose);
|
|
82
|
+
|
|
83
|
+
/* ---- Radius ---- */
|
|
84
|
+
--radius-sm: var(--radius-sm);
|
|
85
|
+
--radius-md: var(--radius-md);
|
|
86
|
+
--radius-lg: var(--radius-lg);
|
|
87
|
+
--radius-xl: var(--radius-xl);
|
|
88
|
+
--radius-2xl: var(--radius-2xl);
|
|
89
|
+
--radius-3xl: var(--radius-3xl);
|
|
90
|
+
|
|
91
|
+
/* ---- Shadows ---- */
|
|
92
|
+
--shadow-sm: var(--shadow-sm);
|
|
93
|
+
--shadow-md: var(--shadow-md);
|
|
94
|
+
--shadow-lg: var(--shadow-lg);
|
|
95
|
+
--shadow-xl: var(--shadow-xl);
|
|
96
|
+
--shadow-2xl: var(--shadow-2xl);
|
|
97
|
+
--shadow-inner: var(--shadow-inner);
|
|
98
|
+
|
|
99
|
+
/* ---- Motion ---- */
|
|
100
|
+
--ease-in: var(--motion-ease-in);
|
|
101
|
+
--ease-out: var(--motion-ease-out);
|
|
102
|
+
--ease-in-out: var(--motion-ease-in-out);
|
|
103
|
+
--ease-spring: var(--motion-ease-spring);
|
|
104
|
+
--animate-smooth: var(--motion-ease-smooth);
|
|
105
|
+
}
|
|
106
|
+
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
@loba/design — themes/crimson.css
|
|
3
|
+
Bold — Crimson red (#d72638) on near-black (#120608)
|
|
4
|
+
LAYER 2 — COLOR TOKENS (consumes tokens.css)
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
@import "./default.css";
|
|
8
|
+
|
|
9
|
+
:root {
|
|
10
|
+
--brand-primary: #d72638;
|
|
11
|
+
--brand-primary-hover: #b81f2f;
|
|
12
|
+
--brand-primary-active: #9a1a27;
|
|
13
|
+
--brand-primary-light: #e86a77;
|
|
14
|
+
--brand-primary-muted: color-mix(in srgb, #d72638 15%, transparent);
|
|
15
|
+
--brand-glow: color-mix(in srgb, #d72638 25%, transparent);
|
|
16
|
+
--text-on-brand: #ffffff;
|
|
17
|
+
|
|
18
|
+
--background-primary: #120608;
|
|
19
|
+
--background-secondary: color-mix(in srgb, #120608 92%, white);
|
|
20
|
+
|
|
21
|
+
--surface-base: color-mix(in srgb, #120608 92%, white);
|
|
22
|
+
--surface-raised: color-mix(in srgb, #120608 84%, white);
|
|
23
|
+
--surface-card: color-mix(in srgb, #120608 88%, white);
|
|
24
|
+
--surface-hover: color-mix(in srgb, #120608 84%, white);
|
|
25
|
+
|
|
26
|
+
--text-primary: color-mix(in srgb, #120608 4%, white);
|
|
27
|
+
--text-secondary: color-mix(in srgb, #120608 40%, white);
|
|
28
|
+
--text-muted: color-mix(in srgb, #120608 60%, white);
|
|
29
|
+
--text-inverse: color-mix(in srgb, white 96%, black);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
[data-theme="light"] {
|
|
33
|
+
--background-primary: #ffffff;
|
|
34
|
+
--background-secondary: color-mix(in srgb, #ffffff 95%, black);
|
|
35
|
+
|
|
36
|
+
--surface-base: color-mix(in srgb, #ffffff 93%, black);
|
|
37
|
+
--surface-raised: color-mix(in srgb, #ffffff 86%, black);
|
|
38
|
+
--surface-card: color-mix(in srgb, #ffffff 97%, black);
|
|
39
|
+
--surface-hover: color-mix(in srgb, #ffffff 90%, black);
|
|
40
|
+
|
|
41
|
+
--text-primary: color-mix(in srgb, black 92%, white);
|
|
42
|
+
--text-secondary: color-mix(in srgb, black 70%, white);
|
|
43
|
+
--text-muted: color-mix(in srgb, black 55%, white);
|
|
44
|
+
--text-inverse: color-mix(in srgb, white 96%, black);
|
|
45
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
@loba/design — themes/dark.css
|
|
3
|
+
Deep space — Blue brand (#2563eb) on dark navy (#050816)
|
|
4
|
+
LAYER 2 — COLOR TOKENS (consumes tokens.css)
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
@import "./default.css";
|
|
8
|
+
|
|
9
|
+
:root {
|
|
10
|
+
--brand-primary: #2563eb;
|
|
11
|
+
--brand-primary-hover: #1d4ed8;
|
|
12
|
+
--brand-primary-active: #1e40af;
|
|
13
|
+
--brand-primary-light: #60a5fa;
|
|
14
|
+
--brand-primary-muted: color-mix(in srgb, #2563eb 15%, transparent);
|
|
15
|
+
--brand-glow: color-mix(in srgb, #2563eb 25%, transparent);
|
|
16
|
+
|
|
17
|
+
--background-primary: #050816;
|
|
18
|
+
--background-secondary: color-mix(in srgb, #050816 92%, white);
|
|
19
|
+
|
|
20
|
+
--surface-base: color-mix(in srgb, #050816 92%, white);
|
|
21
|
+
--surface-raised: color-mix(in srgb, #050816 84%, white);
|
|
22
|
+
--surface-card: color-mix(in srgb, #050816 88%, white);
|
|
23
|
+
--surface-hover: color-mix(in srgb, #050816 84%, white);
|
|
24
|
+
--surface-elevated-1: color-mix(in srgb, #050816 84%, white);
|
|
25
|
+
--surface-elevated-2: color-mix(in srgb, #050816 76%, white);
|
|
26
|
+
--surface-elevated-3: color-mix(in srgb, #050816 68%, white);
|
|
27
|
+
--surface-glass: color-mix(in srgb, white 6%, transparent);
|
|
28
|
+
--surface-glass-strong: color-mix(in srgb, white 10%, transparent);
|
|
29
|
+
|
|
30
|
+
--text-primary: #f8fafc;
|
|
31
|
+
--text-secondary: #94a3b8;
|
|
32
|
+
--text-muted: #64748b;
|
|
33
|
+
--text-inverse: #050816;
|
|
34
|
+
}
|
|
35
|
+
|