@turtleclub/ui 0.7.0-beta.32 → 0.7.0-beta.34
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/index.cjs +10331 -110
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +7652 -47844
- package/dist/index.js.map +1 -1
- package/dist/types/components/features/sidebar-layout.d.ts +2 -0
- package/dist/types/components/features/sidebar-layout.d.ts.map +1 -1
- package/dist/types/components/ui/chart.d.ts +1 -1
- package/dist/types/components/ui/chart.d.ts.map +1 -1
- package/package.json +26 -22
- package/.prettierrc.json +0 -4
- package/.turbo/turbo-build.log +0 -182
- package/CHANGELOG.md +0 -795
- package/components.json +0 -21
- package/src/components/charts/QUICK_REFERENCE.md +0 -323
- package/src/components/charts/README.md +0 -658
- package/src/components/charts/RECHARTS_FEATURES.md +0 -458
- package/src/components/charts/area-chart.tsx +0 -248
- package/src/components/charts/bar-chart.tsx +0 -362
- package/src/components/charts/index.ts +0 -4
- package/src/components/charts/pie-chart.tsx +0 -277
- package/src/components/charts/radial-chart.tsx +0 -312
- package/src/components/features/api-status/index.tsx +0 -23
- package/src/components/features/data-table/data-table.tsx +0 -538
- package/src/components/features/data-table/expand-toggle.tsx +0 -17
- package/src/components/features/data-table/fuzzy-filter.tsx +0 -34
- package/src/components/features/data-table/index.ts +0 -3
- package/src/components/features/data-table/item-info.tsx +0 -19
- package/src/components/features/data-table/skeleton.tsx +0 -23
- package/src/components/features/data-table/sort-dropdown.tsx +0 -118
- package/src/components/features/data-table/sortable-header.tsx +0 -37
- package/src/components/features/index.ts +0 -6
- package/src/components/features/page-heading.tsx +0 -27
- package/src/components/features/search-bar.tsx +0 -55
- package/src/components/features/segmented-navigation.tsx +0 -18
- package/src/components/features/sidebar-layout.tsx +0 -193
- package/src/components/features/turtle-tooltip.tsx +0 -67
- package/src/components/icons/arrow.tsx +0 -23
- package/src/components/icons/beta.tsx +0 -95
- package/src/components/icons/dot.tsx +0 -102
- package/src/components/icons/index.ts +0 -7
- package/src/components/icons/issue.tsx +0 -106
- package/src/components/icons/turtle.tsx +0 -156
- package/src/components/icons/update.tsx +0 -113
- package/src/components/icons/warning.tsx +0 -95
- package/src/components/molecules/index.ts +0 -9
- package/src/components/molecules/opportunity/index.ts +0 -10
- package/src/components/molecules/opportunity/opportunity-apr.tsx +0 -129
- package/src/components/molecules/opportunity/opportunity-disclaimer.tsx +0 -46
- package/src/components/molecules/opportunity/opportunity-rate-estimator.tsx +0 -62
- package/src/components/molecules/opportunity/opportunity-section.tsx +0 -113
- package/src/components/molecules/opportunity/opportunity-selector.tsx +0 -30
- package/src/components/molecules/opportunity/opportunity-type.tsx +0 -16
- package/src/components/molecules/route-details.tsx +0 -112
- package/src/components/molecules/slippage-selector.tsx +0 -200
- package/src/components/molecules/swap-details.tsx +0 -55
- package/src/components/molecules/swap-input.tsx +0 -186
- package/src/components/molecules/tabs.tsx +0 -79
- package/src/components/molecules/token-selector.tsx +0 -180
- package/src/components/molecules/tx-status.tsx +0 -312
- package/src/components/molecules/widget/asset-list/asset-filters.tsx +0 -113
- package/src/components/molecules/widget/asset-list/asset-list.tsx +0 -178
- package/src/components/molecules/widget/asset-list/asset-row.tsx +0 -45
- package/src/components/molecules/widget/asset-list/hooks/index.ts +0 -2
- package/src/components/molecules/widget/asset-list/hooks/use-asset-filtering.ts +0 -44
- package/src/components/molecules/widget/asset-list/hooks/use-asset-grouping.ts +0 -87
- package/src/components/molecules/widget/asset-list/index.ts +0 -3
- package/src/components/molecules/widget/base-selector.tsx +0 -121
- package/src/components/molecules/widget/campaign-item.tsx +0 -82
- package/src/components/molecules/widget/deal-item.tsx +0 -92
- package/src/components/molecules/widget/index.ts +0 -36
- package/src/components/molecules/widget/opportunity-item.tsx +0 -105
- package/src/components/molecules/widget/widget-item-stats.tsx +0 -50
- package/src/components/molecules/widget/widget-item.tsx +0 -139
- package/src/components/molecules/widget/widget-list-items.tsx +0 -86
- package/src/components/ui/alert-dialog.tsx +0 -163
- package/src/components/ui/animated-background/animated-background.tsx +0 -182
- package/src/components/ui/animated-background/index.ts +0 -1
- package/src/components/ui/avatar.tsx +0 -73
- package/src/components/ui/badge.tsx +0 -59
- package/src/components/ui/banner.tsx +0 -84
- package/src/components/ui/button.tsx +0 -100
- package/src/components/ui/card.tsx +0 -119
- package/src/components/ui/chart.tsx +0 -346
- package/src/components/ui/checkbox.tsx +0 -32
- package/src/components/ui/chip.tsx +0 -52
- package/src/components/ui/collapsible.tsx +0 -34
- package/src/components/ui/combobox.tsx +0 -730
- package/src/components/ui/command.tsx +0 -184
- package/src/components/ui/dialog.tsx +0 -129
- package/src/components/ui/dropdown.tsx +0 -316
- package/src/components/ui/field.tsx +0 -244
- package/src/components/ui/heading.tsx +0 -74
- package/src/components/ui/hover-card.tsx +0 -139
- package/src/components/ui/icon-animation.tsx +0 -82
- package/src/components/ui/icon-list.tsx +0 -168
- package/src/components/ui/index.ts +0 -48
- package/src/components/ui/info-card.tsx +0 -110
- package/src/components/ui/input-group.tsx +0 -170
- package/src/components/ui/input.tsx +0 -72
- package/src/components/ui/label-with-icon.tsx +0 -122
- package/src/components/ui/label.tsx +0 -24
- package/src/components/ui/multi-select.tsx +0 -1090
- package/src/components/ui/navigation-bar.tsx +0 -153
- package/src/components/ui/navigation-menu.tsx +0 -188
- package/src/components/ui/opportunity-details-v1.tsx +0 -104
- package/src/components/ui/pagination.tsx +0 -127
- package/src/components/ui/popover.tsx +0 -48
- package/src/components/ui/scroll-area.tsx +0 -64
- package/src/components/ui/segment-control.tsx +0 -146
- package/src/components/ui/select.tsx +0 -199
- package/src/components/ui/separator.tsx +0 -26
- package/src/components/ui/sheet.tsx +0 -139
- package/src/components/ui/sidebar.tsx +0 -728
- package/src/components/ui/skeleton.tsx +0 -14
- package/src/components/ui/slider.tsx +0 -58
- package/src/components/ui/sonner.tsx +0 -24
- package/src/components/ui/switch.tsx +0 -29
- package/src/components/ui/table-shadcn.tsx +0 -110
- package/src/components/ui/table.tsx +0 -117
- package/src/components/ui/textarea.tsx +0 -22
- package/src/components/ui/toggle-group.tsx +0 -71
- package/src/components/ui/toggle.tsx +0 -47
- package/src/components/ui/tooltip.tsx +0 -66
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useIsMobile.ts +0 -77
- package/src/index.ts +0 -16
- package/src/lib/utils.ts +0 -6
- package/src/styles/globals.css +0 -181
- package/src/styles/themes/index.css +0 -9
- package/src/styles/themes/semantic.css +0 -117
- package/src/styles/tokens/colors.css +0 -124
- package/src/styles/tokens/index.css +0 -15
- package/src/styles/tokens/radius.css +0 -18
- package/src/styles/tokens/spacing.css +0 -58
- package/src/styles/tokens/typography.css +0 -87
- package/src/tokens/index.ts +0 -108
- package/tsconfig.json +0 -20
- package/vite.config.js +0 -49
- /package/{src/images/enso.png → dist/enso-22FJ4GNK.png} +0 -0
package/src/styles/globals.css
DELETED
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Turtle Design System - Global Styles
|
|
3
|
-
*
|
|
4
|
-
* This is the main entry point for the Turtle Design System.
|
|
5
|
-
* It imports our complete token-based theming architecture and
|
|
6
|
-
* provides base styles for all components.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/* Import Tailwind CSS and animations */
|
|
10
|
-
@import "tailwindcss";
|
|
11
|
-
@import "tw-animate-css";
|
|
12
|
-
|
|
13
|
-
/* Import our complete design system */
|
|
14
|
-
@import "./themes/index.css";
|
|
15
|
-
|
|
16
|
-
/* Custom Tailwind variants */
|
|
17
|
-
@custom-variant dark (&:is(.dark *));
|
|
18
|
-
|
|
19
|
-
/* ===== TAILWIND THEME INTEGRATION ===== */
|
|
20
|
-
/*
|
|
21
|
-
* This section maps our semantic variables to Tailwind's color system
|
|
22
|
-
* so we can use classes like bg-background, text-foreground, etc.
|
|
23
|
-
*/
|
|
24
|
-
@theme static {
|
|
25
|
-
--default-font-family: "DM Sans", sans-serif;
|
|
26
|
-
|
|
27
|
-
/* Border radius mapping */
|
|
28
|
-
--radius-xs: calc(var(--radius) - 16px);
|
|
29
|
-
--radius-sm: calc(var(--radius) - 8px);
|
|
30
|
-
--radius-md: calc(var(--radius) - 4px);
|
|
31
|
-
--radius-lg: var(--radius);
|
|
32
|
-
--radius-xl: calc(var(--radius) + 4px);
|
|
33
|
-
--radius-2xl: calc(var(--radius) + 8px);
|
|
34
|
-
--radius-full: calc(infinity * 1px);
|
|
35
|
-
--radius-turtle: var(--radius-turtle);
|
|
36
|
-
--radius-info-card: var(--radius-info-card);
|
|
37
|
-
|
|
38
|
-
/* Color mapping for Tailwind classes */
|
|
39
|
-
--color-background: var(--background);
|
|
40
|
-
--color-foreground: var(--foreground);
|
|
41
|
-
--color-card: var(--card);
|
|
42
|
-
--color-card-foreground: var(--card-foreground);
|
|
43
|
-
--color-popover: var(--popover);
|
|
44
|
-
--color-popover-foreground: var(--popover-foreground);
|
|
45
|
-
--color-primary: var(--primary);
|
|
46
|
-
--color-primary-foreground: var(--primary-foreground);
|
|
47
|
-
--color-secondary: var(--secondary);
|
|
48
|
-
--color-secondary-foreground: var(--secondary-foreground);
|
|
49
|
-
--color-muted: var(--muted);
|
|
50
|
-
--color-muted-foreground: var(--muted-foreground);
|
|
51
|
-
--color-accent: var(--accent);
|
|
52
|
-
--color-accent-foreground: var(--accent-foreground);
|
|
53
|
-
--color-destructive: var(--destructive);
|
|
54
|
-
--color-destructive-foreground: var(--destructive-foreground);
|
|
55
|
-
|
|
56
|
-
--color-border: var(--border);
|
|
57
|
-
--color-input: var(--input);
|
|
58
|
-
--color-ring: var(--ring);
|
|
59
|
-
|
|
60
|
-
--color-sidebar: var(--sidebar);
|
|
61
|
-
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
62
|
-
--color-sidebar-primary: var(--primary);
|
|
63
|
-
--color-sidebar-primary-foreground: var(--primary-foreground);
|
|
64
|
-
--color-sidebar-accent: var(--accent);
|
|
65
|
-
--color-sidebar-accent-foreground: var(--accent-foreground);
|
|
66
|
-
--color-sidebar-border: var(--border);
|
|
67
|
-
--color-sidebar-ring: var(--ring);
|
|
68
|
-
|
|
69
|
-
--color-neutral-alpha-2: var(--color-neutral-alpha-2);
|
|
70
|
-
--color-neutral-alpha-5: var(--color-neutral-alpha-5);
|
|
71
|
-
--color-neutral-alpha-10: var(--color-neutral-alpha-10);
|
|
72
|
-
--color-neutral-alpha-20: var(--color-neutral-alpha-20);
|
|
73
|
-
--color-neutral-alpha-30: var(--color-neutral-alpha-30);
|
|
74
|
-
--color-neutral-alpha-50: var(--color-neutral-alpha-50);
|
|
75
|
-
|
|
76
|
-
--color-primary-alpha-10: var(--color-brand-green-alpha-10);
|
|
77
|
-
--color-primary-alpha-20: var(--color-brand-green-alpha-20);
|
|
78
|
-
--color-primary-alpha-30: var(--color-brand-green-alpha-30);
|
|
79
|
-
--color-primary-alpha-50: var(--color-brand-green-alpha-50);
|
|
80
|
-
|
|
81
|
-
--color-chart-1: var(--chart-1);
|
|
82
|
-
--color-chart-2: var(--chart-2);
|
|
83
|
-
--color-chart-3: var(--chart-3);
|
|
84
|
-
--color-chart-4: var(--chart-4);
|
|
85
|
-
--color-chart-5: var(--chart-5);
|
|
86
|
-
--color-chart-6: var(--chart-6);
|
|
87
|
-
--color-chart-7: var(--chart-7);
|
|
88
|
-
--color-chart-8: var(--chart-8);
|
|
89
|
-
--color-chart-9: var(--chart-9);
|
|
90
|
-
|
|
91
|
-
--border-gradient-white: linear-gradient(
|
|
92
|
-
175deg,
|
|
93
|
-
var(--color-neutral-alpha-50) 0%,
|
|
94
|
-
var(--color-neutral-alpha-5) 40%,
|
|
95
|
-
var(--color-neutral-alpha-2) 62%,
|
|
96
|
-
var(--color-neutral-alpha-20) 100%
|
|
97
|
-
)
|
|
98
|
-
border-box;
|
|
99
|
-
--border-gradient-soft: linear-gradient(
|
|
100
|
-
165deg,
|
|
101
|
-
var(--color-neutral-alpha-20) 0%,
|
|
102
|
-
var(--color-neutral-alpha-2) 40%,
|
|
103
|
-
var(--color-neutral-alpha-2) 62%,
|
|
104
|
-
var(--color-neutral-alpha-5) 100%
|
|
105
|
-
)
|
|
106
|
-
border-box;
|
|
107
|
-
--border-gradient-primary: linear-gradient(
|
|
108
|
-
175deg,
|
|
109
|
-
var(--color-primary-alpha-50) 0%,
|
|
110
|
-
var(--color-primary-alpha-20) 40%,
|
|
111
|
-
var(--color-primary-alpha-10) 62%,
|
|
112
|
-
var(--color-primary-alpha-30) 100%
|
|
113
|
-
)
|
|
114
|
-
border-box;
|
|
115
|
-
--border-gradient-accent: linear-gradient(
|
|
116
|
-
to bottom,
|
|
117
|
-
var(--color-primary) 0%,
|
|
118
|
-
var(--color-primary-alpha-50) 30%,
|
|
119
|
-
var(--color-primary-alpha-20) 70%,
|
|
120
|
-
var(--color-primary-alpha-10) 100%
|
|
121
|
-
)
|
|
122
|
-
border-box;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
@utility border-gradient-* {
|
|
126
|
-
@apply relative border border-transparent;
|
|
127
|
-
|
|
128
|
-
&::before {
|
|
129
|
-
content: "";
|
|
130
|
-
@apply pointer-events-none absolute -inset-px border border-transparent;
|
|
131
|
-
border-radius: inherit; /* match rounded-* from parent */
|
|
132
|
-
background: --value(--border-gradient-*); /* gradient from utility */
|
|
133
|
-
-webkit-mask:
|
|
134
|
-
linear-gradient(#fff 0 0) padding-box,
|
|
135
|
-
linear-gradient(#fff 0 0) border-box;
|
|
136
|
-
-webkit-mask-composite: xor;
|
|
137
|
-
mask:
|
|
138
|
-
linear-gradient(#fff 0 0) padding-box,
|
|
139
|
-
linear-gradient(#fff 0 0) border-box;
|
|
140
|
-
mask-composite: exclude;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
@layer base {
|
|
145
|
-
* {
|
|
146
|
-
@apply selection:text-primary-foreground selection:bg-primary;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/* ===== COMPONENT STYLES ===== */
|
|
151
|
-
@layer components {
|
|
152
|
-
/* Managed Table */
|
|
153
|
-
.managed-table {
|
|
154
|
-
@apply border-separate;
|
|
155
|
-
border-spacing: 0 10px;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.managed-table tr {
|
|
159
|
-
@apply text-sm hover:bg-transparent;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
.managed-table thead tr th {
|
|
163
|
-
@apply text-muted-foreground h-6 px-3 py-1 text-xs font-normal;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.managed-table tbody tr > td {
|
|
167
|
-
@apply bg-muted/5 h-[38px] font-normal lg:py-1;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.managed-table tbody tr > td:first-child {
|
|
171
|
-
@apply rounded-l-full pl-4;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
.managed-table tbody tr > td:last-child {
|
|
175
|
-
@apply rounded-r-full pr-4;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
.managed-table tbody tr:hover > td {
|
|
179
|
-
@apply bg-muted/40;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Turtle Design System - Semantic Theme Variables
|
|
3
|
-
*
|
|
4
|
-
* This file maps our core design tokens to the semantic variables
|
|
5
|
-
* expected by shadcn/ui components. This is the bridge between our
|
|
6
|
-
* brand identity and the component API.
|
|
7
|
-
*
|
|
8
|
-
* All shadcn/ui components use these semantic variables, making them
|
|
9
|
-
* fully themeable while maintaining our brand consistency.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/* Import core design tokens first */
|
|
13
|
-
@import "../tokens/index.css";
|
|
14
|
-
|
|
15
|
-
:root {
|
|
16
|
-
/* ===== SEMANTIC COLOR MAPPING ===== */
|
|
17
|
-
/* Default theme: DARK (Turtle's primary brand experience) */
|
|
18
|
-
|
|
19
|
-
/* Background colors */
|
|
20
|
-
--background: var(--color-brand-black); /* #141514 - Dark background (default) */
|
|
21
|
-
--foreground: var(--color-brand-white); /* #F9F9F9 - Light text (default) */
|
|
22
|
-
|
|
23
|
-
/* Card colors */
|
|
24
|
-
--card: var(--color-brand-black); /* #141514 - Dark card background */
|
|
25
|
-
--card-foreground: var(--color-brand-white); /* #F9F9F9 - Light card text */
|
|
26
|
-
|
|
27
|
-
/* Popover colors */
|
|
28
|
-
--popover: var(--color-brand-black); /* #141514 - Dark popover */
|
|
29
|
-
--popover-foreground: var(--color-brand-white); /* #F9F9F9 - Light popover text */
|
|
30
|
-
|
|
31
|
-
/* Primary colors */
|
|
32
|
-
--primary: var(--color-brand-green); /* #73F36C - Primary brand color */
|
|
33
|
-
--primary-foreground: var(--color-brand-black); /* #141514 - Black text on green */
|
|
34
|
-
|
|
35
|
-
/* Secondary colors */
|
|
36
|
-
--secondary: var(--color-neutral-base-800); /* #262626 - Light overlay on dark */
|
|
37
|
-
--secondary-foreground: var(--color-brand-white); /* #F9F9F9 - Light text */
|
|
38
|
-
|
|
39
|
-
/* Muted colors */
|
|
40
|
-
--muted: var(--color-neutral-base-850); /* #191A19 - Subtle overlay */
|
|
41
|
-
--muted-foreground: var(--color-neutral-alpha-50); /* #FFFFFF80 - Muted text */
|
|
42
|
-
|
|
43
|
-
/* Accent colors */
|
|
44
|
-
--accent: var(--color-brand-green); /* #73F36C - Accent color */
|
|
45
|
-
--accent-foreground: var(--color-brand-black); /* #141514 - Black text on green */
|
|
46
|
-
|
|
47
|
-
/* Destructive colors */
|
|
48
|
-
--destructive: var(--color-error); /* #EF4444 - Error/destructive */
|
|
49
|
-
--destructive-foreground: var(--color-brand-white); /* #F9F9F9 - Light text on red */
|
|
50
|
-
|
|
51
|
-
/* Border and input colors */
|
|
52
|
-
--border: var(--color-neutral-alpha-10); /* #F9F9F91A - Light borders on dark */
|
|
53
|
-
--input: var(--color-neutral-alpha-2); /* #F9F9F905 - Subtle input background */
|
|
54
|
-
--ring: var(--color-brand-green); /* #73F36C - Focus ring */
|
|
55
|
-
|
|
56
|
-
--sidebar: var(--color-neutral-base-850);
|
|
57
|
-
--sidebar-foreground: var(--color-brand-white);
|
|
58
|
-
|
|
59
|
-
/* ===== SEMANTIC SPACING MAPPING ===== */
|
|
60
|
-
--radius: var(--radius-turtle); /* 16px - Default border radius */
|
|
61
|
-
|
|
62
|
-
/* ===== CHART COLORS (FOR DATA VISUALIZATION) ===== */
|
|
63
|
-
--chart-1: oklch(0.75 0.17 164); /* Emerald */
|
|
64
|
-
--chart-2: oklch(0.72 0.14 200); /* Cyan */
|
|
65
|
-
--chart-3: oklch(0.56 0.18 272); /* Indigo */
|
|
66
|
-
--chart-4: oklch(0.68 0.13 192); /* Teal */
|
|
67
|
-
--chart-5: oklch(0.72 0.18 350); /* Pink */
|
|
68
|
-
--chart-6: oklch(0.75 0.15 75); /* Amber */
|
|
69
|
-
--chart-7: oklch(0.7 0.14 230); /* Sky */
|
|
70
|
-
--chart-8: oklch(0.62 0.02 60); /* Stone */
|
|
71
|
-
--chart-9: oklch(0.58 0.02 240); /* Slate */
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/* ===== LIGHT THEME ===== */
|
|
75
|
-
.light {
|
|
76
|
-
/* Light theme - for when users prefer light mode */
|
|
77
|
-
|
|
78
|
-
/* Background colors */
|
|
79
|
-
--background: var(--color-brand-white); /* #F9F9F9 - Light background */
|
|
80
|
-
--foreground: var(--color-brand-black); /* #141514 - Dark text */
|
|
81
|
-
|
|
82
|
-
/* Card colors */
|
|
83
|
-
--card: var(--color-brand-white); /* #F9F9F9 - Light card background */
|
|
84
|
-
--card-foreground: var(--color-brand-black); /* #141514 - Dark card text */
|
|
85
|
-
|
|
86
|
-
/* Popover colors */
|
|
87
|
-
--popover: var(--color-brand-white); /* #F9F9F9 - Light popover */
|
|
88
|
-
--popover-foreground: var(--color-brand-black); /* #141514 - Dark popover text */
|
|
89
|
-
|
|
90
|
-
/* Primary colors */
|
|
91
|
-
--primary: var(--color-brand-green); /* #73F36C - Same green (brand consistency) */
|
|
92
|
-
--primary-foreground: var(--color-brand-black); /* #141514 - Black text on green */
|
|
93
|
-
|
|
94
|
-
/* Secondary colors */
|
|
95
|
-
--secondary: var(--color-neutral-alpha-10); /* #F9F9F91A - Light overlay */
|
|
96
|
-
--secondary-foreground: var(--color-brand-black); /* #141514 - Dark text */
|
|
97
|
-
|
|
98
|
-
/* Muted colors */
|
|
99
|
-
--muted: var(--color-neutral-alpha-2); /* #F9F9F905 - Subtle overlay */
|
|
100
|
-
--muted-foreground: var(--color-neutral-alpha-50); /* #FFFFFF80 - Muted text */
|
|
101
|
-
|
|
102
|
-
/* Accent colors */
|
|
103
|
-
--accent: var(--color-brand-green); /* #73F36C - Same accent */
|
|
104
|
-
--accent-foreground: var(--color-brand-black); /* #141514 - Black text on green */
|
|
105
|
-
|
|
106
|
-
/* Destructive colors */
|
|
107
|
-
--destructive: var(--color-error); /* #EF4444 - Same error color */
|
|
108
|
-
--destructive-foreground: var(--color-brand-white); /* #F9F9F9 - Light text on red */
|
|
109
|
-
|
|
110
|
-
/* Border and input colors */
|
|
111
|
-
--border: var(--color-neutral-alpha-dark-10); /* #1415141A - Dark borders on light */
|
|
112
|
-
--input: var(--color-neutral-alpha-2); /* #F9F9F905 - Subtle input background */
|
|
113
|
-
--ring: var(--color-brand-green); /* #73F36C - Same focus ring */
|
|
114
|
-
|
|
115
|
-
--sidebar: var(--color-neutral-base-850);
|
|
116
|
-
--sidebar-foreground: var(--color-brand-white);
|
|
117
|
-
}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Turtle Design System - Core Color Tokens
|
|
3
|
-
*
|
|
4
|
-
* These are the foundational color values that define our brand identity.
|
|
5
|
-
* They should not be changed frequently and represent our core brand colors.
|
|
6
|
-
*
|
|
7
|
-
* Naming Convention:
|
|
8
|
-
* --color-[category]-[name]: [value]
|
|
9
|
-
*
|
|
10
|
-
* Categories:
|
|
11
|
-
* - brand: Primary brand colors (Neon Green, Ninja Black, Wise White)
|
|
12
|
-
* - neutral: Functional grays and transparent variants
|
|
13
|
-
* - semantic: Special purpose colors (success, error, warning)
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
:root {
|
|
17
|
-
/* ===== PRIMARY BRAND COLORS ===== */
|
|
18
|
-
/* These are the core Turtle Club brand colors */
|
|
19
|
-
--color-brand-green: oklch(
|
|
20
|
-
0.8623 0.2096 142.59
|
|
21
|
-
); /* Neon Green - Primary brand color */
|
|
22
|
-
--color-brand-black: oklch(
|
|
23
|
-
0.1942 0.0025 145.48
|
|
24
|
-
); /* Ninja Black - Dark backgrounds, text */
|
|
25
|
-
--color-brand-white: oklch(
|
|
26
|
-
0.9821 0 89.88
|
|
27
|
-
); /* Wise White - Light backgrounds, text */
|
|
28
|
-
|
|
29
|
-
/* ===== NEUTRAL COLORS ===== */
|
|
30
|
-
/* Functional colors for UI elements */
|
|
31
|
-
--color-neutral-base-50: oklch(
|
|
32
|
-
0.9821 0 89.88
|
|
33
|
-
); /* Lightest - same as brand white */
|
|
34
|
-
--color-neutral-base-100: oklch(0.9581 0 89.88); /* Very light gray */
|
|
35
|
-
--color-neutral-base-200: oklch(0.9219 0 89.88); /* Light gray for borders */
|
|
36
|
-
--color-neutral-base-300: oklch(0.8607 0 89.88); /* Medium light gray */
|
|
37
|
-
--color-neutral-base-400: oklch(0.7155 0 89.88); /* Medium gray */
|
|
38
|
-
--color-neutral-base-500: oklch(0.5555 0 89.88); /* True neutral */
|
|
39
|
-
--color-neutral-base-600: oklch(0.4386 0 89.88); /* Medium dark gray */
|
|
40
|
-
--color-neutral-base-700: oklch(0.3715 0 89.88); /* Dark gray */
|
|
41
|
-
--color-neutral-base-800: oklch(0.2686 0 89.88); /* Very dark gray */
|
|
42
|
-
--color-neutral-base-850: oklch(
|
|
43
|
-
0.2163 0.0025 145.49
|
|
44
|
-
); /* Very very dark gray */
|
|
45
|
-
--color-neutral-base-900: oklch(
|
|
46
|
-
0.1942 0.0025 145.48
|
|
47
|
-
); /* Darkest - same as brand black */
|
|
48
|
-
|
|
49
|
-
/* ===== TRANSPARENT VARIANTS ===== */
|
|
50
|
-
--color-brand-green-alpha-10: oklch(0.8623 0.2096 142.59 / 0.102); /* 10% */
|
|
51
|
-
--color-brand-green-alpha-20: oklch(0.8623 0.2096 142.59 / 0.2); /* 20% */
|
|
52
|
-
--color-brand-green-alpha-30: oklch(0.8623 0.2096 142.59 / 0.302); /* 30% */
|
|
53
|
-
--color-brand-green-alpha-40: oklch(0.8623 0.2096 142.59 / 0.4); /* 40% */
|
|
54
|
-
--color-brand-green-alpha-50: oklch(0.8623 0.2096 142.59 / 0.502); /* 50% */
|
|
55
|
-
--color-brand-green-alpha-60: oklch(0.8623 0.2096 142.59 / 0.6); /* 60% */
|
|
56
|
-
--color-brand-green-alpha-70: oklch(0.8623 0.2096 142.59 / 0.702); /* 70% */
|
|
57
|
-
--color-brand-green-alpha-80: oklch(0.8623 0.2096 142.59 / 0.8); /* 80% */
|
|
58
|
-
--color-brand-green-alpha-90: oklch(0.8623 0.2096 142.59 / 0.902); /* 90% */
|
|
59
|
-
|
|
60
|
-
/* Alpha variants for overlays and subtle backgrounds */
|
|
61
|
-
--color-neutral-alpha-2: oklch(0.9821 0 89.88 / 0.02); /* 2% opacity white */
|
|
62
|
-
--color-neutral-alpha-5: oklch(0.9821 0 89.88 / 0.051); /* 5% opacity white */
|
|
63
|
-
--color-neutral-alpha-10: oklch(
|
|
64
|
-
0.9821 0 89.88 / 0.102
|
|
65
|
-
); /* 10% opacity white */
|
|
66
|
-
--color-neutral-alpha-20: oklch(0.9821 0 89.88 / 0.2); /* 20% opacity white */
|
|
67
|
-
--color-neutral-alpha-30: oklch(
|
|
68
|
-
0.9821 0 89.88 / 0.302
|
|
69
|
-
); /* 30% opacity white */
|
|
70
|
-
--color-neutral-alpha-50: oklch(1 0 89.88 / 0.502); /* 50% opacity white */
|
|
71
|
-
|
|
72
|
-
/* Green alpha variants for design system */
|
|
73
|
-
--color-brand-green-alpha-10: oklch(
|
|
74
|
-
0.6477 0.1717 141.5 / 0.102
|
|
75
|
-
); /* 10% opacity green */
|
|
76
|
-
--color-brand-green-alpha-20: oklch(
|
|
77
|
-
0.8623 0.2096 142.59 / 0.2
|
|
78
|
-
); /* 20% opacity green (Dark Green) */
|
|
79
|
-
|
|
80
|
-
/* Special colors from design system */
|
|
81
|
-
--color-brand-aqua: oklch(
|
|
82
|
-
0.9035 0.0807 168.05
|
|
83
|
-
); /* Aqua - Secondary brand color */
|
|
84
|
-
|
|
85
|
-
/* Black alpha variants */
|
|
86
|
-
--color-neutral-alpha-dark-2: oklch(
|
|
87
|
-
0.1942 0.0025 145.48 / 0.02
|
|
88
|
-
); /* 2% opacity black */
|
|
89
|
-
--color-neutral-alpha-dark-5: oklch(
|
|
90
|
-
0.1942 0.0025 145.48 / 0.051
|
|
91
|
-
); /* 5% opacity black */
|
|
92
|
-
--color-neutral-alpha-dark-10: oklch(
|
|
93
|
-
0.1942 0.0025 145.48 / 0.102
|
|
94
|
-
); /* 10% opacity black */
|
|
95
|
-
--color-neutral-alpha-dark-20: oklch(
|
|
96
|
-
0.1942 0.0025 145.48 / 0.2
|
|
97
|
-
); /* 20% opacity black */
|
|
98
|
-
--color-neutral-alpha-dark-30: oklch(
|
|
99
|
-
0.1942 0.0025 145.48 / 0.302
|
|
100
|
-
); /* 30% opacity black */
|
|
101
|
-
--color-neutral-alpha-dark-50: oklch(
|
|
102
|
-
0.1942 0.0025 145.48 / 0.502
|
|
103
|
-
); /* 50% opacity black */
|
|
104
|
-
|
|
105
|
-
/* ===== SEMANTIC COLORS ===== */
|
|
106
|
-
/* Colors for specific UI states and feedback */
|
|
107
|
-
--color-success: oklch(0.7227 0.192 149.58); /* Green for success states */
|
|
108
|
-
--color-success-light: oklch(
|
|
109
|
-
0.9624 0.0434 156.74
|
|
110
|
-
); /* Light green background */
|
|
111
|
-
--color-success-dark: oklch(0.4479 0.1083 151.33); /* Dark green for text */
|
|
112
|
-
|
|
113
|
-
--color-error: oklch(0.6368 0.2078 25.33); /* Red for error states */
|
|
114
|
-
--color-error-light: oklch(0.9356 0.0309 17.72); /* Light red background */
|
|
115
|
-
--color-error-dark: oklch(0.4437 0.1613 26.9); /* Dark red for text */
|
|
116
|
-
|
|
117
|
-
--color-warning: oklch(0.7686 0.1647 70.08); /* Amber for warning states */
|
|
118
|
-
--color-warning-light: oklch(0.9619 0.058 95.62); /* Light amber background */
|
|
119
|
-
--color-warning-dark: oklch(0.4732 0.1247 46.2); /* Dark amber for text */
|
|
120
|
-
|
|
121
|
-
--color-info: oklch(0.6231 0.188 259.81); /* Blue for info states */
|
|
122
|
-
--color-info-light: oklch(0.9319 0.0316 255.59); /* Light blue background */
|
|
123
|
-
--color-info-dark: oklch(0.4244 0.1809 265.64); /* Dark blue for text */
|
|
124
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Turtle Design System - Core Design Tokens
|
|
3
|
-
*
|
|
4
|
-
* This file imports all core design tokens that define the foundation
|
|
5
|
-
* of our design system. These tokens should be imported before any
|
|
6
|
-
* semantic theme files.
|
|
7
|
-
*
|
|
8
|
-
* Import order is important for CSS cascade.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/* Core design tokens - order matters */
|
|
12
|
-
@import "./colors.css";
|
|
13
|
-
@import "./spacing.css";
|
|
14
|
-
@import "./radius.css";
|
|
15
|
-
@import "./typography.css";
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Turtle Design System - Core Radius Tokens
|
|
3
|
-
*
|
|
4
|
-
* These define the border radius scale for consistent rounded corners
|
|
5
|
-
* across all components. Based on a mathematical progression.
|
|
6
|
-
*
|
|
7
|
-
* Naming Convention:
|
|
8
|
-
* --radius-[size]: [value]
|
|
9
|
-
*
|
|
10
|
-
* Scale: none, sm, md, lg, xl, 2xl, 3xl, full
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
:root {
|
|
14
|
-
/* ===== BASE RADIUS SCALE ===== */
|
|
15
|
-
/* Mathematical progression for visual harmony */
|
|
16
|
-
--radius-turtle: 1.25rem; /* 20px - Turtle rounding */
|
|
17
|
-
--radius-3xl: 1.5rem; /* 24px - 3X large rounding */
|
|
18
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Turtle Design System - Core Spacing Tokens
|
|
3
|
-
*
|
|
4
|
-
* These define the spatial rhythm and consistency across all components.
|
|
5
|
-
* Based on a 4px base unit for mathematical harmony.
|
|
6
|
-
*
|
|
7
|
-
* Naming Convention:
|
|
8
|
-
* --spacing-[size]: [value]
|
|
9
|
-
*
|
|
10
|
-
* Scale: 0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32, 40, 48, 64, 80, 96
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
:root {
|
|
14
|
-
/* ===== BASE SPACING SCALE ===== */
|
|
15
|
-
/* Based on 4px increments for consistent rhythm */
|
|
16
|
-
--spacing-0: 0px; /* 0px - No spacing */
|
|
17
|
-
--spacing-1: 0.25rem; /* 4px - Tiny spacing */
|
|
18
|
-
--spacing-2: 0.5rem; /* 8px - Extra small */
|
|
19
|
-
--spacing-3: 0.75rem; /* 12px - Small */
|
|
20
|
-
--spacing-4: 1rem; /* 16px - Default/medium */
|
|
21
|
-
--spacing-5: 1.25rem; /* 20px - Medium-large */
|
|
22
|
-
--spacing-6: 1.5rem; /* 24px - Large */
|
|
23
|
-
--spacing-8: 2rem; /* 32px - Extra large */
|
|
24
|
-
--spacing-10: 2.5rem; /* 40px - 2X large */
|
|
25
|
-
--spacing-12: 3rem; /* 48px - 3X large */
|
|
26
|
-
--spacing-16: 4rem; /* 64px - 4X large */
|
|
27
|
-
--spacing-20: 5rem; /* 80px - 5X large */
|
|
28
|
-
--spacing-24: 6rem; /* 96px - 6X large */
|
|
29
|
-
--spacing-32: 8rem; /* 128px - Huge */
|
|
30
|
-
--spacing-40: 10rem; /* 160px - Extra huge */
|
|
31
|
-
--spacing-48: 12rem; /* 192px - Maximum */
|
|
32
|
-
|
|
33
|
-
/* ===== SEMANTIC SPACING ===== */
|
|
34
|
-
/* Common spacing patterns with semantic names */
|
|
35
|
-
--spacing-xs: var(--spacing-1); /* 4px - Extra small */
|
|
36
|
-
--spacing-sm: var(--spacing-2); /* 8px - Small */
|
|
37
|
-
--spacing-md: var(--spacing-4); /* 16px - Medium/default */
|
|
38
|
-
--spacing-lg: var(--spacing-6); /* 24px - Large */
|
|
39
|
-
--spacing-xl: var(--spacing-8); /* 32px - Extra large */
|
|
40
|
-
--spacing-2xl: var(--spacing-12); /* 48px - 2X large */
|
|
41
|
-
--spacing-3xl: var(--spacing-16); /* 64px - 3X large */
|
|
42
|
-
|
|
43
|
-
/* ===== COMPONENT-SPECIFIC SPACING ===== */
|
|
44
|
-
/* Common spacing patterns for specific use cases */
|
|
45
|
-
--spacing-button-padding-x: var(
|
|
46
|
-
--spacing-4
|
|
47
|
-
); /* 16px - Button horizontal padding */
|
|
48
|
-
--spacing-button-padding-y: var(
|
|
49
|
-
--spacing-2
|
|
50
|
-
); /* 8px - Button vertical padding */
|
|
51
|
-
--spacing-card-padding: var(--spacing-6); /* 24px - Card inner padding */
|
|
52
|
-
--spacing-container-padding: var(--spacing-4); /* 16px - Container padding */
|
|
53
|
-
--spacing-section-gap: var(--spacing-8); /* 32px - Gap between sections */
|
|
54
|
-
--spacing-component-gap: var(--spacing-4); /* 16px - Gap between components */
|
|
55
|
-
--spacing-element-gap: var(
|
|
56
|
-
--spacing-2
|
|
57
|
-
); /* 8px - Gap between small elements */
|
|
58
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Turtle Design System - Core Typography Tokens
|
|
3
|
-
*
|
|
4
|
-
* These define the typography scale, font families, and text styles
|
|
5
|
-
* for consistent text rendering across all components.
|
|
6
|
-
*
|
|
7
|
-
* Naming Convention:
|
|
8
|
-
* --font-[property]-[size/variant]: [value]
|
|
9
|
-
* --text-[size]: [value]
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
:root {
|
|
13
|
-
/* ===== FONT FAMILIES ===== */
|
|
14
|
-
/* Primary font stack for body text and UI elements */
|
|
15
|
-
--font-sans:
|
|
16
|
-
ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
17
|
-
Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,
|
|
18
|
-
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
19
|
-
|
|
20
|
-
/* Monospace font stack for code and technical content */
|
|
21
|
-
--font-mono:
|
|
22
|
-
ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo,
|
|
23
|
-
monospace;
|
|
24
|
-
|
|
25
|
-
/* Display font (same as sans for now, can be customized) */
|
|
26
|
-
--font-display: var(--font-sans);
|
|
27
|
-
|
|
28
|
-
/* ===== FONT SIZES ===== */
|
|
29
|
-
/* Based on a modular scale for visual hierarchy */
|
|
30
|
-
--text-xs: 0.75rem; /* 12px */
|
|
31
|
-
--text-sm: 0.875rem; /* 14px */
|
|
32
|
-
--text-base: 1rem; /* 16px - Base size */
|
|
33
|
-
--text-lg: 1.125rem; /* 18px */
|
|
34
|
-
--text-xl: 1.25rem; /* 20px */
|
|
35
|
-
--text-2xl: 1.5rem; /* 24px */
|
|
36
|
-
--text-3xl: 1.875rem; /* 30px */
|
|
37
|
-
--text-4xl: 2.25rem; /* 36px */
|
|
38
|
-
--text-5xl: 3rem; /* 48px */
|
|
39
|
-
--text-6xl: 3.75rem; /* 60px */
|
|
40
|
-
--text-7xl: 4.5rem; /* 72px */
|
|
41
|
-
--text-8xl: 6rem; /* 96px */
|
|
42
|
-
--text-9xl: 8rem; /* 128px */
|
|
43
|
-
|
|
44
|
-
/* ===== LINE HEIGHTS ===== */
|
|
45
|
-
/* Corresponding line heights for each font size */
|
|
46
|
-
--leading-xs: 1rem; /* 16px - for 12px text */
|
|
47
|
-
--leading-sm: 1.25rem; /* 20px - for 14px text */
|
|
48
|
-
--leading-base: 1.5rem; /* 24px - for 16px text */
|
|
49
|
-
--leading-lg: 1.75rem; /* 28px - for 18px text */
|
|
50
|
-
--leading-xl: 1.75rem; /* 28px - for 20px text */
|
|
51
|
-
--leading-2xl: 2rem; /* 32px - for 24px text */
|
|
52
|
-
--leading-3xl: 2.25rem; /* 36px - for 30px text */
|
|
53
|
-
--leading-4xl: 2.5rem; /* 40px - for 36px text */
|
|
54
|
-
--leading-5xl: 1; /* 1 - tight for large text */
|
|
55
|
-
--leading-6xl: 1; /* 1 - tight for large text */
|
|
56
|
-
--leading-7xl: 1; /* 1 - tight for large text */
|
|
57
|
-
--leading-8xl: 1; /* 1 - tight for large text */
|
|
58
|
-
--leading-9xl: 1; /* 1 - tight for large text */
|
|
59
|
-
|
|
60
|
-
/* Semantic line heights */
|
|
61
|
-
--leading-tight: 1.25; /* Tight line height */
|
|
62
|
-
--leading-snug: 1.375; /* Snug line height */
|
|
63
|
-
--leading-normal: 1.5; /* Normal line height */
|
|
64
|
-
--leading-relaxed: 1.625; /* Relaxed line height */
|
|
65
|
-
--leading-loose: 2; /* Loose line height */
|
|
66
|
-
|
|
67
|
-
/* ===== FONT WEIGHTS ===== */
|
|
68
|
-
/* Standard font weight scale */
|
|
69
|
-
--font-weight-thin: 100; /* Thin */
|
|
70
|
-
--font-weight-extralight: 200; /* Extra light */
|
|
71
|
-
--font-weight-light: 300; /* Light */
|
|
72
|
-
--font-weight-normal: 400; /* Normal/Regular */
|
|
73
|
-
--font-weight-medium: 500; /* Medium */
|
|
74
|
-
--font-weight-semibold: 600; /* Semi-bold */
|
|
75
|
-
--font-weight-bold: 700; /* Bold */
|
|
76
|
-
--font-weight-extrabold: 800; /* Extra bold */
|
|
77
|
-
--font-weight-black: 900; /* Black */
|
|
78
|
-
|
|
79
|
-
/* ===== LETTER SPACING ===== */
|
|
80
|
-
/* Letter spacing for different text styles */
|
|
81
|
-
--tracking-tighter: -0.05em; /* Tighter letter spacing */
|
|
82
|
-
--tracking-tight: -0.025em; /* Tight letter spacing */
|
|
83
|
-
--tracking-normal: 0em; /* Normal letter spacing */
|
|
84
|
-
--tracking-wide: 0.025em; /* Wide letter spacing */
|
|
85
|
-
--tracking-wider: 0.05em; /* Wider letter spacing */
|
|
86
|
-
--tracking-widest: 0.1em; /* Widest letter spacing */
|
|
87
|
-
}
|