radtools 0.1.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 +108 -0
- package/bin/radtools.js +5 -0
- package/dist/cli/index.js +427 -0
- package/package.json +55 -0
- package/templates/api-routes/assets/optimize/route.ts +94 -0
- package/templates/api-routes/assets/route.ts +159 -0
- package/templates/api-routes/components/create-folder/route.ts +55 -0
- package/templates/api-routes/components/route.ts +156 -0
- package/templates/api-routes/fonts/route.ts +96 -0
- package/templates/api-routes/fonts/upload/route.ts +79 -0
- package/templates/api-routes/read-css/route.ts +29 -0
- package/templates/api-routes/write-css/route.ts +423 -0
- package/templates/components/Rad_os/AppWindow.tsx +423 -0
- package/templates/components/Rad_os/MobileAppModal.tsx +76 -0
- package/templates/components/Rad_os/WindowTitleBar.tsx +290 -0
- package/templates/components/icons/Icon.tsx +224 -0
- package/templates/components/icons/README.md +85 -0
- package/templates/components/icons/index.ts +20 -0
- package/templates/components/icons.tsx +164 -0
- package/templates/components/ui/Accordion.tsx +268 -0
- package/templates/components/ui/Alert.tsx +111 -0
- package/templates/components/ui/Badge.tsx +87 -0
- package/templates/components/ui/Breadcrumbs.tsx +88 -0
- package/templates/components/ui/Button.tsx +249 -0
- package/templates/components/ui/Card.tsx +137 -0
- package/templates/components/ui/Checkbox.tsx +137 -0
- package/templates/components/ui/ContextMenu.tsx +220 -0
- package/templates/components/ui/Dialog.tsx +264 -0
- package/templates/components/ui/Divider.tsx +70 -0
- package/templates/components/ui/DropdownMenu.tsx +301 -0
- package/templates/components/ui/HelpPanel.tsx +119 -0
- package/templates/components/ui/Input.tsx +176 -0
- package/templates/components/ui/Popover.tsx +211 -0
- package/templates/components/ui/Progress.tsx +158 -0
- package/templates/components/ui/Select.tsx +134 -0
- package/templates/components/ui/Sheet.tsx +316 -0
- package/templates/components/ui/Slider.tsx +223 -0
- package/templates/components/ui/Switch.tsx +155 -0
- package/templates/components/ui/Tabs.tsx +253 -0
- package/templates/components/ui/Toast.tsx +192 -0
- package/templates/components/ui/Tooltip.tsx +129 -0
- package/templates/components/ui/hooks/useModalBehavior.ts +66 -0
- package/templates/components/ui/index.ts +84 -0
- package/templates/devtools/DevToolsPanel.tsx +261 -0
- package/templates/devtools/DevToolsProvider.tsx +43 -0
- package/templates/devtools/components/BreakpointIndicator.tsx +49 -0
- package/templates/devtools/components/ColorPicker.tsx +33 -0
- package/templates/devtools/components/ComponentsSecondaryNav.tsx +44 -0
- package/templates/devtools/components/ContextualFooter.tsx +56 -0
- package/templates/devtools/components/DraggablePanel.tsx +43 -0
- package/templates/devtools/components/PrimaryNavigationFooter.tsx +254 -0
- package/templates/devtools/components/SearchableColorDropdown.tsx +253 -0
- package/templates/devtools/components/SecondaryNavigation.tsx +36 -0
- package/templates/devtools/components/TokenDropdown.tsx +47 -0
- package/templates/devtools/components/TypographyFooter.tsx +145 -0
- package/templates/devtools/hooks/useMockState.ts +16 -0
- package/templates/devtools/index.ts +17 -0
- package/templates/devtools/lib/componentScanner.ts +78 -0
- package/templates/devtools/lib/cssParser.ts +465 -0
- package/templates/devtools/lib/searchIndexes.ts +45 -0
- package/templates/devtools/lib/selectorGenerator.ts +86 -0
- package/templates/devtools/store/index.ts +66 -0
- package/templates/devtools/store/slices/assetsSlice.ts +106 -0
- package/templates/devtools/store/slices/componentsSlice.ts +59 -0
- package/templates/devtools/store/slices/mockStatesSlice.ts +77 -0
- package/templates/devtools/store/slices/panelSlice.ts +17 -0
- package/templates/devtools/store/slices/typographySlice.ts +538 -0
- package/templates/devtools/store/slices/variablesSlice.ts +167 -0
- package/templates/devtools/tabs/AssetsTab/AssetGrid.tsx +76 -0
- package/templates/devtools/tabs/AssetsTab/FolderTree.tsx +53 -0
- package/templates/devtools/tabs/AssetsTab/UploadDropzone.tsx +76 -0
- package/templates/devtools/tabs/AssetsTab/index.tsx +182 -0
- package/templates/devtools/tabs/ComponentsTab/AddTabButton.tsx +63 -0
- package/templates/devtools/tabs/ComponentsTab/ComponentList.tsx +153 -0
- package/templates/devtools/tabs/ComponentsTab/DesignSystemTab.tsx +1515 -0
- package/templates/devtools/tabs/ComponentsTab/DynamicFolderTab.tsx +113 -0
- package/templates/devtools/tabs/ComponentsTab/PropDisplay.tsx +55 -0
- package/templates/devtools/tabs/ComponentsTab/index.tsx +167 -0
- package/templates/devtools/tabs/ComponentsTab/previews/.gitkeep +4 -0
- package/templates/devtools/tabs/ComponentsTab/previews/Rad_os.tsx +262 -0
- package/templates/devtools/tabs/ComponentsTab/tabConfig.ts +53 -0
- package/templates/devtools/tabs/MockStatesTab/index.tsx +29 -0
- package/templates/devtools/tabs/TypographyTab/FontManager.tsx +421 -0
- package/templates/devtools/tabs/TypographyTab/TypographyStylesDisplay.tsx +290 -0
- package/templates/devtools/tabs/TypographyTab/index.tsx +98 -0
- package/templates/devtools/tabs/VariablesTab/BaseColorEditor.tsx +267 -0
- package/templates/devtools/tabs/VariablesTab/BorderRadiusEditor.tsx +37 -0
- package/templates/devtools/tabs/VariablesTab/ColorModeSelector.tsx +235 -0
- package/templates/devtools/tabs/VariablesTab/index.tsx +100 -0
- package/templates/devtools/types/index.ts +99 -0
- package/templates/globals.css +574 -0
- package/templates/hooks/index.ts +1 -0
- package/templates/hooks/useWindowManager.ts +212 -0
- package/templates/public/assets/icons/avatar.svg +18 -0
- package/templates/public/assets/icons/checkmark-filled.svg +14 -0
- package/templates/public/assets/icons/checkmark.svg +14 -0
- package/templates/public/assets/icons/chevron-down.svg +14 -0
- package/templates/public/assets/icons/close.svg +14 -0
- package/templates/public/assets/icons/copy.svg +14 -0
- package/templates/public/assets/icons/download.svg +14 -0
- package/templates/public/assets/icons/expand.svg +31 -0
- package/templates/public/assets/icons/file-blank.svg +17 -0
- package/templates/public/assets/icons/file-image.svg +19 -0
- package/templates/public/assets/icons/file-written.svg +17 -0
- package/templates/public/assets/icons/folder-closed.svg +17 -0
- package/templates/public/assets/icons/folder-open.svg +17 -0
- package/templates/public/assets/icons/hamburger.svg +18 -0
- package/templates/public/assets/icons/home-outline.svg +28 -0
- package/templates/public/assets/icons/home.svg +30 -0
- package/templates/public/assets/icons/hourglass.svg +25 -0
- package/templates/public/assets/icons/information-circle.svg +14 -0
- package/templates/public/assets/icons/information.svg +17 -0
- package/templates/public/assets/icons/lightning.svg +14 -0
- package/templates/public/assets/icons/locked.svg +17 -0
- package/templates/public/assets/icons/not-allowed.svg +14 -0
- package/templates/public/assets/icons/plus.svg +5 -0
- package/templates/public/assets/icons/power-thin.svg +17 -0
- package/templates/public/assets/icons/power.svg +17 -0
- package/templates/public/assets/icons/question-block.svg +14 -0
- package/templates/public/assets/icons/question.svg +17 -0
- package/templates/public/assets/icons/refresh-block.svg +14 -0
- package/templates/public/assets/icons/refresh.svg +17 -0
- package/templates/public/assets/icons/save.svg +14 -0
- package/templates/public/assets/icons/search.svg +25 -0
- package/templates/public/assets/icons/settings.svg +14 -0
- package/templates/public/assets/icons/trash-full.svg +21 -0
- package/templates/public/assets/icons/trash-open.svg +23 -0
- package/templates/public/assets/icons/trash.svg +18 -0
- package/templates/public/assets/icons/unlocked.svg +17 -0
- package/templates/public/assets/icons/waring-triangle-filled.svg +17 -0
- package/templates/public/assets/icons/warning-triangle-filled-2.svg +30 -0
- package/templates/public/assets/icons/warning-triangle-lines.svg +29 -0
- package/templates/public/assets/icons/wrench.svg +17 -0
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@font-face {
|
|
7
|
+
font-family: 'Mondwest';
|
|
8
|
+
src: url('/fonts/Mondwest-Regular.woff2') format('woff2');
|
|
9
|
+
font-weight: 400;
|
|
10
|
+
font-style: normal;
|
|
11
|
+
font-display: swap;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@font-face {
|
|
15
|
+
font-family: 'Mondwest';
|
|
16
|
+
src: url('/fonts/Mondwest-Bold.woff2') format('woff2');
|
|
17
|
+
font-weight: 700;
|
|
18
|
+
font-style: normal;
|
|
19
|
+
font-display: swap;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@font-face {
|
|
23
|
+
font-family: 'PixelCode';
|
|
24
|
+
src: url('/fonts/PixelCode.woff2') format('woff2');
|
|
25
|
+
font-weight: 400;
|
|
26
|
+
font-style: normal;
|
|
27
|
+
font-display: swap;
|
|
28
|
+
}
|
|
29
|
+
/* ============================================================================
|
|
30
|
+
Font Face Definitions
|
|
31
|
+
============================================================================ */
|
|
32
|
+
|
|
33
|
+
/* ============================================================================
|
|
34
|
+
Base Styles
|
|
35
|
+
============================================================================ */
|
|
36
|
+
|
|
37
|
+
* {
|
|
38
|
+
box-sizing: border-box;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
html,
|
|
42
|
+
body {
|
|
43
|
+
margin: 0;
|
|
44
|
+
padding: 0;
|
|
45
|
+
width: 100%;
|
|
46
|
+
height: 100%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
body {
|
|
50
|
+
font-family: 'Joystix Monospace', monospace;
|
|
51
|
+
font-size: clamp(1rem, 1vw, 1.125rem);
|
|
52
|
+
background-color: var(--color-sun-yellow);
|
|
53
|
+
color: var(--color-black);
|
|
54
|
+
-webkit-font-smoothing: antialiased;
|
|
55
|
+
-moz-osx-font-smoothing: grayscale;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* ============================================================================
|
|
59
|
+
Text Selection
|
|
60
|
+
============================================================================ */
|
|
61
|
+
|
|
62
|
+
::selection {
|
|
63
|
+
background: var(--color-sun-yellow);
|
|
64
|
+
color: var(--color-black);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
::-moz-selection {
|
|
68
|
+
background: var(--color-sun-yellow);
|
|
69
|
+
color: var(--color-black);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* ============================================================================
|
|
73
|
+
Animations
|
|
74
|
+
============================================================================ */
|
|
75
|
+
|
|
76
|
+
@keyframes slide-in-right {
|
|
77
|
+
from {
|
|
78
|
+
transform: translateX(100%);
|
|
79
|
+
}
|
|
80
|
+
to {
|
|
81
|
+
transform: translateX(0);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.animate-slide-in-right {
|
|
86
|
+
animation: slide-in-right 0.2s ease-out forwards;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@keyframes fadeIn {
|
|
90
|
+
from {
|
|
91
|
+
opacity: 0;
|
|
92
|
+
}
|
|
93
|
+
to {
|
|
94
|
+
opacity: 1;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.animate-fadeIn {
|
|
99
|
+
animation: fadeIn 0.15s ease-out forwards;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@keyframes scaleIn {
|
|
103
|
+
from {
|
|
104
|
+
opacity: 0;
|
|
105
|
+
transform: scale(0.95);
|
|
106
|
+
}
|
|
107
|
+
to {
|
|
108
|
+
opacity: 1;
|
|
109
|
+
transform: scale(1);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.animate-scaleIn {
|
|
114
|
+
animation: scaleIn 0.15s ease-out forwards;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@keyframes slideIn {
|
|
118
|
+
from {
|
|
119
|
+
opacity: 0;
|
|
120
|
+
transform: translateX(100%);
|
|
121
|
+
}
|
|
122
|
+
to {
|
|
123
|
+
opacity: 1;
|
|
124
|
+
transform: translateX(0);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.animate-slideIn {
|
|
129
|
+
animation: slideIn 0.2s ease-out forwards;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* ============================================================================
|
|
133
|
+
Tailwind v4 Theme Configuration
|
|
134
|
+
============================================================================ */
|
|
135
|
+
|
|
136
|
+
@theme inline {
|
|
137
|
+
/* ============================================
|
|
138
|
+
BRAND COLORS (internal reference only)
|
|
139
|
+
============================================ */
|
|
140
|
+
|
|
141
|
+
--color-cream: #FEF8E2;
|
|
142
|
+
--color-black: #0F0E0C;
|
|
143
|
+
--color-sun-yellow: #FCE184;
|
|
144
|
+
--color-sky-blue: #95BAD2;
|
|
145
|
+
--color-warm-cloud: #FEF8E2;
|
|
146
|
+
--color-sunset-fuzz: #FCC383;
|
|
147
|
+
--color-sun-red: #FF6B63;
|
|
148
|
+
--color-green: #CEF5CA;
|
|
149
|
+
--color-white: #FFFFFF;
|
|
150
|
+
|
|
151
|
+
/* Neutral Colors */
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
/* System Colors */
|
|
155
|
+
--color-success-green: #22C55E;
|
|
156
|
+
--color-success-green-dark: #87BB82;
|
|
157
|
+
--color-warning-yellow: var(--color-sun-yellow);
|
|
158
|
+
--color-warning-yellow-dark: #BE9D2B;
|
|
159
|
+
--color-error-red: var(--color-sun-red);
|
|
160
|
+
--color-error-red-dark: #9E433E;
|
|
161
|
+
--color-focus-state: var(--color-sky-blue);
|
|
162
|
+
|
|
163
|
+
/* Fonts */
|
|
164
|
+
--font-mondwest: 'Mondwest';
|
|
165
|
+
--font-joystix: 'Joystix Monospace', monospace;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@theme {
|
|
169
|
+
/* ============================================
|
|
170
|
+
BRAND COLORS (Tailwind v4 auto-generates utilities)
|
|
171
|
+
bg-sun-yellow, text-black, border-warm-cloud, etc.
|
|
172
|
+
============================================ */
|
|
173
|
+
|
|
174
|
+
/* Brand Colors → bg-sun-yellow, text-black, etc. */
|
|
175
|
+
--color-cream: #FEF8E2;
|
|
176
|
+
--color-black: #0F0E0C;
|
|
177
|
+
--color-sun-yellow: #FCE184;
|
|
178
|
+
--color-sky-blue: #95BAD2;
|
|
179
|
+
--color-warm-cloud: #FEF8E2;
|
|
180
|
+
--color-sunset-fuzz: #FCC383;
|
|
181
|
+
--color-sun-red: #FF6B63;
|
|
182
|
+
--color-green: #CEF5CA;
|
|
183
|
+
--color-white: #FFFFFF;
|
|
184
|
+
|
|
185
|
+
/* Neutral Colors */
|
|
186
|
+
|
|
187
|
+
/* System Colors */
|
|
188
|
+
--color-success-green: #22C55E;
|
|
189
|
+
--color-success-green-dark: #87BB82;
|
|
190
|
+
--color-warning-yellow: var(--color-sun-yellow);
|
|
191
|
+
--color-warning-yellow-dark: #BE9D2B;
|
|
192
|
+
--color-error-red: var(--color-sun-red);
|
|
193
|
+
--color-error-red-dark: #9E433E;
|
|
194
|
+
--color-focus-state: var(--color-sky-blue);
|
|
195
|
+
|
|
196
|
+
/* Border Radius → rounded-sm, rounded-md, etc. */
|
|
197
|
+
--radius-none: 0;
|
|
198
|
+
--radius-xs: 0.125rem; /* 2px */
|
|
199
|
+
--radius-sm: 0.25rem; /* 4px */
|
|
200
|
+
--radius-md: 0.5rem; /* 8px */
|
|
201
|
+
--radius-lg: 1rem; /* 16px */
|
|
202
|
+
--radius-full: 9999px;
|
|
203
|
+
|
|
204
|
+
/* Box Shadows → shadow-btn, shadow-card, etc. */
|
|
205
|
+
--shadow-btn: 0 1px 0 0 var(--color-black);
|
|
206
|
+
--shadow-btn-hover: 0 3px 0 0 var(--color-black);
|
|
207
|
+
--shadow-card: 2px 2px 0 0 var(--color-black);
|
|
208
|
+
--shadow-card-lg: 4px 4px 0 0 var(--color-black);
|
|
209
|
+
--shadow-inner: inset 0 0 0 1px var(--color-black);
|
|
210
|
+
|
|
211
|
+
/* Typography Scale */
|
|
212
|
+
--font-size-2xs: 0.5rem; /* 8px - tiny labels */
|
|
213
|
+
--font-size-xs: 0.75rem; /* 12px - buttons, small UI (most common) */
|
|
214
|
+
--font-size-sm: 0.875rem; /* 14px - body text */
|
|
215
|
+
--font-size-base: 0.875rem; /* 14px - body text */
|
|
216
|
+
--font-size-lg: 1rem; /* 16px - large body */
|
|
217
|
+
|
|
218
|
+
/* Font Families */
|
|
219
|
+
--font-family-mondwest: var(--font-mondwest);
|
|
220
|
+
--font-family-joystix: var(--font-joystix);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/* ============================================
|
|
224
|
+
Additional CSS Custom Properties for compatibility
|
|
225
|
+
============================================ */
|
|
226
|
+
|
|
227
|
+
:root {
|
|
228
|
+
/* Border opacity variants */
|
|
229
|
+
--border-black-10: rgba(15, 14, 12, 0.1);
|
|
230
|
+
--border-black-20: rgba(15, 14, 12, 0.2);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/* ============================================================================
|
|
234
|
+
Custom Scrollbar Styles - Mac Compatible
|
|
235
|
+
|
|
236
|
+
Retro-style webkit scrollbar matching the design system.
|
|
237
|
+
Uses CSS variables from globals.css for consistency.
|
|
238
|
+
============================================================================ */
|
|
239
|
+
|
|
240
|
+
/* Force scrollbars to always be visible - make wider for padding effect */
|
|
241
|
+
::-webkit-scrollbar {
|
|
242
|
+
width: 1.75rem; /* Wider invisible container for padding effect */
|
|
243
|
+
height: 0px;
|
|
244
|
+
-webkit-appearance: none;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* Only show horizontal scrollbar when actually needed */
|
|
248
|
+
::-webkit-scrollbar:horizontal {
|
|
249
|
+
height: 0.5rem;
|
|
250
|
+
display: none !important;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/* Track - narrow and centered within wider scrollbar */
|
|
254
|
+
::-webkit-scrollbar-track {
|
|
255
|
+
background: url('/scrollbar-background.svg') center center / 0.5rem auto repeat-y;
|
|
256
|
+
background-position: bottom;
|
|
257
|
+
background-size: 45%;
|
|
258
|
+
-webkit-appearance: none;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/* Hide horizontal scrollbar track completely */
|
|
262
|
+
::-webkit-scrollbar-track:horizontal {
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/* Thumb - using border/background-clip method for inset effect */
|
|
266
|
+
::-webkit-scrollbar-thumb {
|
|
267
|
+
background: var(--color-warm-cloud);
|
|
268
|
+
border: 0.375rem solid transparent; /* Transparent border creates padding */
|
|
269
|
+
border-radius: 0.5rem;
|
|
270
|
+
-webkit-appearance: none;
|
|
271
|
+
min-height: 2.25rem;
|
|
272
|
+
background-clip: padding-box; /* This is the magic - clips background to content area only */
|
|
273
|
+
/* Add outline around the green area using inset box-shadow */
|
|
274
|
+
box-shadow: inset 0 0 0 1px var(--color-black);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/* Thumb hover state */
|
|
278
|
+
::-webkit-scrollbar-thumb:hover {
|
|
279
|
+
background: var(--color-sun-yellow);
|
|
280
|
+
border: 0.375rem solid transparent;
|
|
281
|
+
background-clip: padding-box;
|
|
282
|
+
box-shadow: inset 0 0 0 1px var(--color-black);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/* Thumb active state */
|
|
286
|
+
::-webkit-scrollbar-thumb:active {
|
|
287
|
+
background: var(--color-sun-yellow);
|
|
288
|
+
border: 0.375rem solid transparent;
|
|
289
|
+
background-clip: padding-box;
|
|
290
|
+
box-shadow: inset 0 0 0 1px var(--color-black);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/* Scrollbar buttons (arrows) - Hide all buttons */
|
|
294
|
+
::-webkit-scrollbar-button {
|
|
295
|
+
display: none !important; /* Hide all arrow buttons */
|
|
296
|
+
height: 0 !important;
|
|
297
|
+
width: 0 !important;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/* Corner where horizontal and vertical scrollbars meet */
|
|
301
|
+
::-webkit-scrollbar-corner {
|
|
302
|
+
display: none !important; /* Hide the corner completely */
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* ============================================================================
|
|
306
|
+
Scrollable Container Utility Class
|
|
307
|
+
|
|
308
|
+
Apply .custom-scrollbar to any scrollable element for styled scrollbars
|
|
309
|
+
============================================================================ */
|
|
310
|
+
|
|
311
|
+
.custom-scrollbar {
|
|
312
|
+
scrollbar-width: thin;
|
|
313
|
+
scrollbar-color: var(--color-warm-cloud) var(--color-sun-yellow);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/* For elements that need a dark-themed scrollbar */
|
|
317
|
+
.custom-scrollbar-dark::-webkit-scrollbar-track {
|
|
318
|
+
background: var(--color-black);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.custom-scrollbar-dark::-webkit-scrollbar-thumb {
|
|
322
|
+
background: var(--color-warm-cloud);
|
|
323
|
+
box-shadow: inset 0 0 0 1px var(--color-sun-yellow);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.custom-scrollbar-dark::-webkit-scrollbar-thumb:hover {
|
|
327
|
+
background: var(--color-sun-yellow);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
@layer base {
|
|
331
|
+
h1 {
|
|
332
|
+
@apply text-4xl font-bold leading-tight text-black;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
h2 {
|
|
336
|
+
@apply text-3xl font-normal leading-tight text-black;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
h3 {
|
|
340
|
+
@apply text-2xl font-semibold leading-snug text-black;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
h4 {
|
|
344
|
+
@apply text-xl font-medium leading-snug text-black;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
h5 {
|
|
348
|
+
@apply text-lg font-medium leading-normal text-black;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
h6 {
|
|
352
|
+
@apply text-base font-medium leading-normal text-black;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
p {
|
|
356
|
+
@apply text-base font-normal leading-relaxed text-black;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
a {
|
|
360
|
+
@apply text-base font-normal leading-normal text-black underline hover:opacity-80;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
ul {
|
|
364
|
+
@apply text-base font-normal leading-relaxed text-black pl-6;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
ol {
|
|
368
|
+
@apply text-base font-normal leading-relaxed text-black pl-6;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
li {
|
|
372
|
+
@apply text-base font-normal leading-relaxed text-black mb-2;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
small {
|
|
376
|
+
@apply text-sm font-normal leading-normal text-black;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
strong {
|
|
380
|
+
@apply text-base font-bold leading-normal text-black;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
em {
|
|
384
|
+
@apply text-base font-normal leading-normal text-black italic;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
code {
|
|
388
|
+
@apply text-sm font-normal leading-normal text-black bg-black/10 px-1 py-0.5 rounded-sm;
|
|
389
|
+
font-family: "PixelCode";
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
pre {
|
|
393
|
+
@apply text-sm font-normal leading-relaxed text-black bg-black/10 p-4 rounded-sm overflow-x-auto;
|
|
394
|
+
font-family: "PixelCode";
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
kbd {
|
|
398
|
+
@apply text-xs font-normal leading-normal text-cream bg-black px-1 py-0.5 rounded-sm;
|
|
399
|
+
font-family: "PixelCode";
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
mark {
|
|
403
|
+
@apply text-base font-normal leading-normal text-black bg-sun-yellow;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
blockquote {
|
|
407
|
+
@apply text-base font-normal leading-relaxed text-black border-l-4 border-black pl-4 italic;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
cite {
|
|
411
|
+
@apply text-sm font-normal leading-normal text-black italic;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
abbr {
|
|
415
|
+
@apply text-base font-normal leading-normal text-black underline decoration-dotted;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
dfn {
|
|
419
|
+
@apply text-base font-normal leading-normal text-black italic;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
q {
|
|
423
|
+
@apply text-base font-normal leading-normal text-black italic;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
sub {
|
|
427
|
+
@apply text-xs font-normal leading-none text-black;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
sup {
|
|
431
|
+
@apply text-xs font-normal leading-none text-black;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
del {
|
|
435
|
+
@apply text-base font-normal leading-normal text-black line-through;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
ins {
|
|
439
|
+
@apply text-base font-normal leading-normal text-black underline;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
caption {
|
|
443
|
+
@apply text-xs font-normal leading-normal text-black;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
label {
|
|
447
|
+
@apply text-xs font-medium leading-normal text-black;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
figcaption {
|
|
451
|
+
@apply text-xs font-normal leading-normal text-black;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
@layer base {
|
|
456
|
+
h2 {
|
|
457
|
+
@apply font-joystix text-3xl font-normal leading-tight text-black;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
h3 {
|
|
461
|
+
@apply font-joystix text-2xl font-semibold leading-snug text-black;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
h4 {
|
|
465
|
+
@apply font-joystix text-xl font-medium leading-snug text-black;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
h5 {
|
|
469
|
+
@apply font-joystix text-lg font-medium leading-normal text-black;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
h6 {
|
|
473
|
+
@apply font-joystix text-base font-medium leading-normal text-black;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
p {
|
|
477
|
+
@apply font-mondwest text-base font-normal leading-relaxed text-black;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
a {
|
|
481
|
+
@apply font-mondwest text-base font-normal leading-normal text-sky-blue underline hover:opacity-80;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
ul {
|
|
485
|
+
@apply font-joystix text-base font-normal leading-relaxed text-black pl-6;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
ol {
|
|
489
|
+
@apply font-joystix text-base font-normal leading-relaxed text-black pl-6;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
li {
|
|
493
|
+
@apply font-mondwest text-base font-normal leading-relaxed text-black mb-2;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
small {
|
|
497
|
+
@apply font-joystix text-sm font-normal leading-normal text-black;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
strong {
|
|
501
|
+
@apply font-joystix text-base font-bold leading-normal text-black;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
em {
|
|
505
|
+
@apply font-joystix text-base font-normal leading-normal text-black italic;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
code {
|
|
509
|
+
@apply text-sm font-normal leading-normal text-black bg-black/10 px-1 py-0.5 rounded-sm;
|
|
510
|
+
font-family: "PixelCode";
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
pre {
|
|
514
|
+
@apply text-sm font-normal leading-relaxed text-black bg-black/10 p-4 rounded-sm overflow-x-auto;
|
|
515
|
+
font-family: "PixelCode";
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
kbd {
|
|
519
|
+
@apply text-xs font-normal leading-normal text-cream bg-black px-1 py-0.5 rounded-sm;
|
|
520
|
+
font-family: "PixelCode";
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
mark {
|
|
524
|
+
@apply font-joystix text-base font-normal leading-normal text-black bg-sun-yellow;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
blockquote {
|
|
528
|
+
@apply font-joystix text-base font-normal leading-relaxed text-black border-l-4 border-black pl-4 italic;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
cite {
|
|
532
|
+
@apply font-joystix text-sm font-normal leading-normal text-black italic;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
abbr {
|
|
536
|
+
@apply font-joystix text-base font-normal leading-normal text-black underline decoration-dotted;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
dfn {
|
|
540
|
+
@apply font-joystix text-base font-normal leading-normal text-black italic;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
q {
|
|
544
|
+
@apply font-joystix text-base font-normal leading-normal text-black italic;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
sub {
|
|
548
|
+
@apply font-joystix text-xs font-normal leading-none text-black;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
sup {
|
|
552
|
+
@apply font-joystix text-xs font-normal leading-none text-black;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
del {
|
|
556
|
+
@apply font-joystix text-base font-normal leading-normal text-black line-through;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
ins {
|
|
560
|
+
@apply font-joystix text-base font-normal leading-normal text-black underline;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
caption {
|
|
564
|
+
@apply font-joystix text-xs font-normal leading-normal text-black;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
label {
|
|
568
|
+
@apply font-joystix text-xs font-medium leading-normal text-black;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
figcaption {
|
|
572
|
+
@apply font-joystix text-xs font-normal leading-normal text-black;
|
|
573
|
+
}
|
|
574
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useWindowManager } from './useWindowManager';
|