@inferencesh/ui 0.0.0-stage → 0.1.1
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/LICENSE +22 -0
- package/README.md +68 -2
- package/components.json +22 -0
- package/package.json +231 -4
- package/src/components/audio-player.tsx +549 -0
- package/src/components/button.tsx +13 -0
- package/src/components/chart.tsx +403 -0
- package/src/components/circuit.tsx +276 -0
- package/src/components/code-block/code-block.tsx +260 -0
- package/src/components/code-block/index.ts +18 -0
- package/src/components/code-block/languages.ts +311 -0
- package/src/components/code-block/styles.ts +39 -0
- package/src/components/code-block/tokenizer.ts +290 -0
- package/src/components/code-block/types.ts +38 -0
- package/src/components/code-block/utils.ts +39 -0
- package/src/components/code.tsx +48 -0
- package/src/components/cookie-consent.tsx +137 -0
- package/src/components/copy-button.tsx +44 -0
- package/src/components/country-dropdown.tsx +188 -0
- package/src/components/glow-loader-fast.tsx +32 -0
- package/src/components/glow-loader-mono.tsx +33 -0
- package/src/components/glow-loader-sm-fast.tsx +32 -0
- package/src/components/glow-loader-sm-mono.tsx +34 -0
- package/src/components/glow-loader-sm.tsx +32 -0
- package/src/components/glow-loader.tsx +32 -0
- package/src/components/glow-logo.tsx +32 -0
- package/src/components/gradient.tsx +80 -0
- package/src/components/index.ts +45 -0
- package/src/components/inline-sidebar.tsx +351 -0
- package/src/components/input-color.tsx +349 -0
- package/src/components/logo-base.tsx +213 -0
- package/src/components/logo-color.tsx +23 -0
- package/src/components/logo-full.tsx +71 -0
- package/src/components/logo-svg.tsx +23 -0
- package/src/components/menu-navigation.tsx +359 -0
- package/src/components/multi-select.tsx +721 -0
- package/src/components/pastel-gradient.tsx +25 -0
- package/src/components/pixel-symmetry.tsx +151 -0
- package/src/components/progress.tsx +28 -0
- package/src/components/scroll-more.tsx +131 -0
- package/src/components/select.tsx +85 -0
- package/src/components/shimmering-text.tsx +108 -0
- package/src/components/sidebar-light.tsx +102 -0
- package/src/components/sonner.tsx +38 -0
- package/src/components/theme-switcher-sidebar.tsx +56 -0
- package/src/components/theme-switcher-simple.tsx +110 -0
- package/src/components/theme-switcher.tsx +47 -0
- package/src/components/toggle-group.tsx +55 -0
- package/src/components/tooltip-button.tsx +91 -0
- package/src/components/tooltip.tsx +71 -0
- package/src/components/tree-view.tsx +499 -0
- package/src/components/unglow-loader.tsx +33 -0
- package/src/components/waveform.tsx +1632 -0
- package/src/components/zoomable-image.tsx +76 -0
- package/src/docs/api-docs.tsx +763 -0
- package/src/docs/callout.tsx +160 -0
- package/src/docs/code-group.tsx +215 -0
- package/src/docs/copy-menu.tsx +143 -0
- package/src/docs/doc-tabs.tsx +84 -0
- package/src/docs/index.ts +16 -0
- package/src/docs/steps.tsx +105 -0
- package/src/docs/table-of-contents.tsx +174 -0
- package/src/examples/guide-markdown.ts +129 -0
- package/src/examples/index.ts +1153 -0
- package/src/global.d.ts +1 -0
- package/src/hooks/use-copy-to-clipboard.ts +36 -0
- package/src/hooks/use-mobile.ts +19 -0
- package/src/lib/display-name.ts +15 -0
- package/src/lib/example-input.ts +130 -0
- package/src/lib/plans.ts +44 -0
- package/src/lib/safe-content.ts +137 -0
- package/src/lib/schema.ts +320 -0
- package/src/lib/storage.ts +108 -0
- package/src/markdown/docs-markdown-renderer.tsx +518 -0
- package/src/markdown/helpers.ts +95 -0
- package/src/markdown/index.ts +24 -0
- package/src/markdown/markdown-renderer.tsx +232 -0
- package/src/markdown/youtube-embed.tsx +43 -0
- package/src/og/image.ts +312 -0
- package/src/og/index.tsx +430 -0
- package/src/og/query.ts +26 -0
- package/src/shadcn/accordion.tsx +71 -0
- package/src/shadcn/alert-dialog.tsx +187 -0
- package/src/shadcn/alert.tsx +75 -0
- package/src/shadcn/aspect-ratio.tsx +22 -0
- package/src/shadcn/attachment.tsx +207 -0
- package/src/shadcn/avatar.tsx +106 -0
- package/src/shadcn/badge.tsx +51 -0
- package/src/shadcn/breadcrumb.tsx +124 -0
- package/src/shadcn/bubble.tsx +127 -0
- package/src/shadcn/button-group.tsx +87 -0
- package/src/shadcn/button.tsx +57 -0
- package/src/shadcn/calendar.tsx +219 -0
- package/src/shadcn/card.tsx +102 -0
- package/src/shadcn/carousel.tsx +242 -0
- package/src/shadcn/chart.tsx +372 -0
- package/src/shadcn/checkbox.tsx +28 -0
- package/src/shadcn/collapsible.tsx +19 -0
- package/src/shadcn/combobox.tsx +297 -0
- package/src/shadcn/command.tsx +194 -0
- package/src/shadcn/context-menu.tsx +270 -0
- package/src/shadcn/dialog.tsx +158 -0
- package/src/shadcn/direction.tsx +4 -0
- package/src/shadcn/drawer.tsx +227 -0
- package/src/shadcn/dropdown-menu.tsx +265 -0
- package/src/shadcn/empty.tsx +103 -0
- package/src/shadcn/field.tsx +238 -0
- package/src/shadcn/form.tsx +173 -0
- package/src/shadcn/hover-card.tsx +50 -0
- package/src/shadcn/index.ts +53 -0
- package/src/shadcn/input-group.tsx +156 -0
- package/src/shadcn/input-otp.tsx +84 -0
- package/src/shadcn/input.tsx +19 -0
- package/src/shadcn/item.tsx +201 -0
- package/src/shadcn/kbd.tsx +26 -0
- package/src/shadcn/label.tsx +19 -0
- package/src/shadcn/marker.tsx +70 -0
- package/src/shadcn/menubar.tsx +278 -0
- package/src/shadcn/message-scroller.tsx +131 -0
- package/src/shadcn/message.tsx +91 -0
- package/src/shadcn/native-select.tsx +60 -0
- package/src/shadcn/navigation-menu.tsx +167 -0
- package/src/shadcn/pagination.tsx +130 -0
- package/src/shadcn/popover.tsx +87 -0
- package/src/shadcn/progress.tsx +82 -0
- package/src/shadcn/radio-group.tsx +35 -0
- package/src/shadcn/resizable.tsx +49 -0
- package/src/shadcn/scroll-area.tsx +52 -0
- package/src/shadcn/select.tsx +200 -0
- package/src/shadcn/separator.tsx +22 -0
- package/src/shadcn/sheet.tsx +136 -0
- package/src/shadcn/sidebar.tsx +721 -0
- package/src/shadcn/skeleton.tsx +13 -0
- package/src/shadcn/slider.tsx +51 -0
- package/src/shadcn/sonner.tsx +49 -0
- package/src/shadcn/spinner.tsx +10 -0
- package/src/shadcn/switch.tsx +29 -0
- package/src/shadcn/table.tsx +115 -0
- package/src/shadcn/tabs.tsx +79 -0
- package/src/shadcn/textarea.tsx +17 -0
- package/src/shadcn/toggle-group.tsx +89 -0
- package/src/shadcn/toggle.tsx +44 -0
- package/src/shadcn/tooltip.tsx +63 -0
- package/src/theme/config.ts +48 -0
- package/src/theme/css/base.css +92 -0
- package/src/theme/css/bitboy.css +75 -0
- package/src/theme/css/dark.css +47 -0
- package/src/theme/css/designer.css +122 -0
- package/src/theme/css/fonts.css +33 -0
- package/src/theme/css/globals.css +14 -0
- package/src/theme/css/hackintosh.css +57 -0
- package/src/theme/css/llama.css +103 -0
- package/src/theme/css/safelist.css +39 -0
- package/src/theme/css/shadcn.css +77 -0
- package/src/theme/css/theme.css +216 -0
- package/src/theme/embed-theme.ts +146 -0
- package/src/theme/fonts/FiraCode-VF.woff2 +0 -0
- package/src/theme/fonts/Hack-Regular.woff2 +0 -0
- package/src/theme/fonts/LICENSE-FiraCode.txt +93 -0
- package/src/theme/fonts/LICENSE-Hack.txt +45 -0
- package/src/theme/fonts/LICENSE-MonaSans.txt +93 -0
- package/src/theme/fonts/Mona-Sans.woff2 +0 -0
- package/src/theme/index.ts +15 -0
- package/src/utils/cn.ts +3 -0
- package/src/utils/index.ts +2 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
h1,
|
|
2
|
+
h2,
|
|
3
|
+
h3,
|
|
4
|
+
h4,
|
|
5
|
+
h5,
|
|
6
|
+
h6 {
|
|
7
|
+
font-family: var(--font-display);
|
|
8
|
+
font-weight: var(--font-weight-normal);
|
|
9
|
+
letter-spacing: var(--tracking-tight);
|
|
10
|
+
text-wrap: balance;
|
|
11
|
+
border-bottom: none;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@layer base {
|
|
15
|
+
|
|
16
|
+
a:not(:where([class*="flex"], [class*="grid"], [class*="w-"], [class*="h-"], [class*="p-"])) {
|
|
17
|
+
@apply text-brand-pink visited:text-brand-pink/80;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
* {
|
|
21
|
+
@apply border-border;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
body {
|
|
25
|
+
@apply bg-background text-foreground;
|
|
26
|
+
font-family: var(--font-sans);
|
|
27
|
+
font-weight: var(--font-weight-normal);
|
|
28
|
+
/* mona sans swaps to display letterforms (single-storey "a") from 18px up;
|
|
29
|
+
pinning the optical size keeps one set of letters at every size */
|
|
30
|
+
font-variation-settings: "opsz" 16;
|
|
31
|
+
font-feature-settings: "tnum" 1;
|
|
32
|
+
hanging-punctuation: first last;
|
|
33
|
+
-webkit-font-smoothing: antialiased;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
p {
|
|
37
|
+
text-wrap: pretty;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.logo {
|
|
41
|
+
font-family: var(--font-hack);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.legible {
|
|
45
|
+
font-family: var(--font-sans);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* Text is selectable as on any page. Controls that must not select on
|
|
49
|
+
click (drag handles, canvases) say so themselves with select-none; a
|
|
50
|
+
global rule guessing from a div's children made plain text in divs
|
|
51
|
+
(list titles, notices) uncopyable. */
|
|
52
|
+
|
|
53
|
+
::selection {
|
|
54
|
+
background-color: var(--color-brand-pink);
|
|
55
|
+
color: var(--color-primary-foreground);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.pintura-editor {
|
|
59
|
+
--color-background: 245, 245, 245 !important;
|
|
60
|
+
--color-foreground: 15, 15, 15 !important;
|
|
61
|
+
--color-primary: var(--color-brand-pink) !important;
|
|
62
|
+
--color-primary-dark: var(--color-brand-pink) !important;
|
|
63
|
+
--color-primary-text: var(--color-foreground) !important;
|
|
64
|
+
--color-secondary: var(--color-brand-green) !important;
|
|
65
|
+
--color-secondary-dark: var(--color-brand-green) !important;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.pintura-editor button,
|
|
69
|
+
.pintura-editor span,
|
|
70
|
+
.pintura-editor [role="tab"] span {
|
|
71
|
+
text-transform: lowercase !important;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.nodrag {
|
|
75
|
+
cursor: default;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Buttons read as clickable; the shadcn components leave the cursor to the
|
|
79
|
+
platform, and ui/shadcn is not hand-edited. */
|
|
80
|
+
button:not(:disabled),
|
|
81
|
+
[role="button"]:not(:disabled, [aria-disabled="true"]) {
|
|
82
|
+
cursor: pointer;
|
|
83
|
+
}
|
|
84
|
+
button:disabled,
|
|
85
|
+
[role="button"][aria-disabled="true"] {
|
|
86
|
+
cursor: not-allowed;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@utility no-scrollbar {
|
|
91
|
+
@apply [scrollbar-width:none] [&::-webkit-scrollbar]:hidden;
|
|
92
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
@custom-variant bitboy (&:where([data-theme="bitboy"], [data-theme="bitboy"] *, .bitboy, .bitboy *));
|
|
2
|
+
|
|
3
|
+
@layer base {
|
|
4
|
+
@variant bitboy {
|
|
5
|
+
/* Classic bitboy's 4-color palette */
|
|
6
|
+
--gb-darkest: 66 31% 12%; /* #0f380f */
|
|
7
|
+
--gb-dark: 69 19% 33%; /* #306230 */
|
|
8
|
+
--gb-light: 68 26% 56%; /* #8bac0f */
|
|
9
|
+
--gb-lightest: 68 31% 71%; /* #9bbc0f */
|
|
10
|
+
|
|
11
|
+
--background: var(--gb-darkest);
|
|
12
|
+
--foreground: var(--gb-lightest);
|
|
13
|
+
--card: var(--gb-dark);
|
|
14
|
+
--card-foreground: var(--gb-lightest);
|
|
15
|
+
--popover: var(--gb-dark);
|
|
16
|
+
--popover-foreground: var(--gb-lightest);
|
|
17
|
+
--primary: var(--gb-light);
|
|
18
|
+
--primary-foreground: var(--gb-darkest);
|
|
19
|
+
--secondary: var(--gb-dark);
|
|
20
|
+
--secondary-foreground: var(--gb-lightest);
|
|
21
|
+
--muted: var(--gb-dark);
|
|
22
|
+
--muted-foreground: var(--gb-light);
|
|
23
|
+
--accent: var(--gb-light);
|
|
24
|
+
--accent-foreground: var(--gb-darkest);
|
|
25
|
+
--destructive: var(--gb-darkest);
|
|
26
|
+
--destructive-foreground: var(--gb-lightest);
|
|
27
|
+
--border: var(--gb-light);
|
|
28
|
+
--input: var(--gb-dark);
|
|
29
|
+
--ring: var(--gb-light);
|
|
30
|
+
|
|
31
|
+
/* All brand colors using bitboy palette */
|
|
32
|
+
--brand-pink: var(--gb-light);
|
|
33
|
+
--brand-green: var(--gb-light);
|
|
34
|
+
--brand-purple: var(--gb-light);
|
|
35
|
+
--brand-lavender: var(--gb-lightest);
|
|
36
|
+
--brand-yellow: var(--gb-lightest);
|
|
37
|
+
--brand-lime: var(--gb-light);
|
|
38
|
+
--brand-blue: var(--gb-light);
|
|
39
|
+
--brand-red: var(--gb-darkest);
|
|
40
|
+
--brand-orange: var(--gb-light);
|
|
41
|
+
--brand-teal: var(--gb-light);
|
|
42
|
+
|
|
43
|
+
--radius: 0px;
|
|
44
|
+
|
|
45
|
+
/* Optional: Add pixel-perfect scaling */
|
|
46
|
+
image-rendering: pixelated;
|
|
47
|
+
font-family: "Press Start 2P", monospace; /* If you want to use a pixel font */
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Optional: Add scanlines effect */
|
|
51
|
+
.bitboy .scanlines {
|
|
52
|
+
background: repeating-linear-gradient(
|
|
53
|
+
0deg,
|
|
54
|
+
var(--gb-darkest),
|
|
55
|
+
var(--gb-darkest) 2px,
|
|
56
|
+
transparent 2px,
|
|
57
|
+
transparent 4px
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.bitboy ::selection {
|
|
62
|
+
background-color: var(--gb-dark);
|
|
63
|
+
color: var(--gb-lightest);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.bitboy .pintura-editor {
|
|
67
|
+
--color-background: 38, 40, 21 !important;
|
|
68
|
+
--color-foreground: 198, 204, 158 !important;
|
|
69
|
+
--color-primary: var(--color-brand-pink) !important;
|
|
70
|
+
--color-primary-dark: var(--color-brand-pink) !important;
|
|
71
|
+
--color-primary-text: var(--color-foreground) !important;
|
|
72
|
+
--color-secondary: var(--color-brand-green) !important;
|
|
73
|
+
--color-secondary-dark: var(--color-brand-green) !important;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
@custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *, .dark, .dark *));
|
|
2
|
+
|
|
3
|
+
@layer base {
|
|
4
|
+
@variant dark {
|
|
5
|
+
--background: 0 0% 5.9%;
|
|
6
|
+
--foreground: 0 0% 96%;
|
|
7
|
+
--card: 0 0% 5.9%;
|
|
8
|
+
--card-foreground: 0 0% 96%;
|
|
9
|
+
--popover: 0 0% 5.9%;
|
|
10
|
+
--popover-foreground: 0 0% 96%;
|
|
11
|
+
--primary: 0 0% 96%;
|
|
12
|
+
--primary-foreground: 0 0% 9%;
|
|
13
|
+
--secondary: 0 0% 14.9%;
|
|
14
|
+
--secondary-foreground: 0 0% 96%;
|
|
15
|
+
--muted: 0 0% 14.9%;
|
|
16
|
+
--muted-foreground: 0 0% 65.9%;
|
|
17
|
+
--accent: 0 0% 14.9%;
|
|
18
|
+
--accent-foreground: 0 0% 96%;
|
|
19
|
+
--destructive: 0 62.8% 30.6%;
|
|
20
|
+
--destructive-foreground: 0 0% 96%;
|
|
21
|
+
--border: 0 0% 14.9%;
|
|
22
|
+
--input: 0 0% 14.9%;
|
|
23
|
+
--ring: 0 0% 65.9%;
|
|
24
|
+
--chart-1: var(--brand-pink); /* brand.pink: #FF569D */
|
|
25
|
+
--chart-2: var(--brand-green); /* brand.green: #00D08A */
|
|
26
|
+
--chart-3: var(--brand-purple); /* brand.purple: #5415FF */
|
|
27
|
+
--chart-4: var(--brand-lavender); /* brand.lavender: #F08AFF */
|
|
28
|
+
--chart-5: var(--brand-yellow); /* brand.yellow: #FFF14C */
|
|
29
|
+
--radius: 0.5rem;
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.dark .pintura-editor {
|
|
34
|
+
--color-background: 15, 15, 15 !important;
|
|
35
|
+
--color-foreground: 245, 245, 245 !important;
|
|
36
|
+
--color-primary: var(--color-brand-pink) !important;
|
|
37
|
+
--color-primary-dark: var(--color-brand-pink) !important;
|
|
38
|
+
--color-primary-text: var(--color-foreground) !important;
|
|
39
|
+
--color-secondary: var(--color-brand-green) !important;
|
|
40
|
+
--color-secondary-dark: var(--color-brand-green) !important;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.dark ::selection {
|
|
44
|
+
background-color: var(--color-brand-pink);
|
|
45
|
+
color: var(--color-primary-foreground);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
@custom-variant designer (&:where([data-theme="designer"], [data-theme="designer"] *, .designer, .designer *));
|
|
2
|
+
|
|
3
|
+
@layer base {
|
|
4
|
+
@variant designer {
|
|
5
|
+
/* Classic 90s web colors */
|
|
6
|
+
--hot-pink: 330 100% 71%; /* #FF69B4 */
|
|
7
|
+
--web-purple: 300 76% 72%; /* #800080 */
|
|
8
|
+
--web-yellow: 60 100% 50%; /* #FFFF00 */
|
|
9
|
+
--web-cyan: 180 100% 50%; /* #00FFFF */
|
|
10
|
+
--web-lime: 120 100% 50%; /* #00FF00 */
|
|
11
|
+
--web-blue: 240 100% 50%; /* #0000FF */
|
|
12
|
+
--marquee-bg: 0 0% 0%; /* #000000 */
|
|
13
|
+
|
|
14
|
+
/* Theme mapping */
|
|
15
|
+
--background: 60 100% 97%; /* Nearly white background */
|
|
16
|
+
--foreground: 0 0% 0%; /* Black text */
|
|
17
|
+
--card: 180 100% 97%; /* Light cyan cards */
|
|
18
|
+
--card-foreground: 0 0% 0%;
|
|
19
|
+
--popover: 300 100% 97%; /* Light purple popovers */
|
|
20
|
+
--popover-foreground: 0 0% 0%;
|
|
21
|
+
--primary: var(--hot-pink);
|
|
22
|
+
--primary-foreground: 0 0% 100%;
|
|
23
|
+
--secondary: var(--web-purple);
|
|
24
|
+
--secondary-foreground: 0 0% 100%;
|
|
25
|
+
--muted: 0 0% 90%;
|
|
26
|
+
--muted-foreground: 0 0% 40%;
|
|
27
|
+
--accent: var(--web-yellow);
|
|
28
|
+
--accent-foreground: 0 0% 0%;
|
|
29
|
+
--destructive: 0 100% 50%; /* Pure red */
|
|
30
|
+
--destructive-foreground: 0 0% 100%;
|
|
31
|
+
--border: var(--hot-pink);
|
|
32
|
+
--input: 0 0% 100%; /* White inputs */
|
|
33
|
+
--ring: var(--web-cyan);
|
|
34
|
+
|
|
35
|
+
/* Brand colors in their full 90s glory */
|
|
36
|
+
--brand-pink: var(--hot-pink);
|
|
37
|
+
--brand-green: var(--web-lime);
|
|
38
|
+
--brand-purple: var(--web-purple);
|
|
39
|
+
--brand-lavender: 270 100% 86%;
|
|
40
|
+
--brand-yellow: var(--web-yellow);
|
|
41
|
+
--brand-lime: var(--web-lime);
|
|
42
|
+
--brand-blue: var(--web-blue);
|
|
43
|
+
--brand-red: 0 100% 50%;
|
|
44
|
+
--brand-orange: 39 100% 50%;
|
|
45
|
+
--brand-teal: 180 100% 25%;
|
|
46
|
+
|
|
47
|
+
/* Classic 90s styling */
|
|
48
|
+
--radius: 0px; /* Sharp corners forever! */
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Override ALL font families when designer theme is active */
|
|
52
|
+
.designer,
|
|
53
|
+
.designer body,
|
|
54
|
+
.designer .logo,
|
|
55
|
+
.designer * {
|
|
56
|
+
font-family: "Comic Sans MS", "Comic Sans", cursive !important;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Even headers get the Comic Sans treatment */
|
|
60
|
+
.designer h1,
|
|
61
|
+
.designer h2,
|
|
62
|
+
.designer h3,
|
|
63
|
+
.designer h4,
|
|
64
|
+
.designer h5,
|
|
65
|
+
.designer h6 {
|
|
66
|
+
font-family: "Comic Sans MS", "Comic Sans", cursive !important;
|
|
67
|
+
font-weight: bold; /* Make headers stand out a bit */
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Nostalgic under construction animation */
|
|
71
|
+
.designer .construction {
|
|
72
|
+
background: repeating-linear-gradient(
|
|
73
|
+
45deg,
|
|
74
|
+
60 100% 50%,
|
|
75
|
+
60 100% 50% 10px,
|
|
76
|
+
0 0% 0% 10px,
|
|
77
|
+
0 0% 0% 20px
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* Marquee-style animation background */
|
|
82
|
+
.designer .marquee {
|
|
83
|
+
background: var(--marquee-bg);
|
|
84
|
+
color: var(--web-yellow);
|
|
85
|
+
text-transform: uppercase;
|
|
86
|
+
text-shadow: 2px 2px var(--hot-pink);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* Classic link styling */
|
|
90
|
+
.designer a:not(.button) {
|
|
91
|
+
color: var(--web-blue);
|
|
92
|
+
text-decoration: underline;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.designer a:not(.button):visited {
|
|
96
|
+
color: var(--web-purple);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Blinking text effect */
|
|
100
|
+
.designer .blink {
|
|
101
|
+
animation: blink 1s step-end infinite;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@keyframes blink {
|
|
105
|
+
50% { opacity: 0; }
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.designer ::selection {
|
|
109
|
+
background-color: var(--hot-pink);
|
|
110
|
+
color: 0 0% 100%;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.designer .pintura-editor {
|
|
114
|
+
--color-background: 255, 255, 240 !important;
|
|
115
|
+
--color-foreground: 0, 0, 0 !important;
|
|
116
|
+
--color-primary: var(--color-brand-pink) !important;
|
|
117
|
+
--color-primary-dark: var(--color-brand-pink) !important;
|
|
118
|
+
--color-primary-text: var(--color-foreground) !important;
|
|
119
|
+
--color-secondary: var(--color-brand-green) !important;
|
|
120
|
+
--color-secondary-dark: var(--color-brand-green) !important;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Self-hosted fonts, bundled by each app's Vite build from ../fonts.
|
|
3
|
+
* Licences sit next to the files (SIL OFL 1.1; Hack is MIT + Bitstream Vera).
|
|
4
|
+
*
|
|
5
|
+
* - Mona Sans (headings, body, UI)
|
|
6
|
+
* - Fira Code (commands, terminal, small labels)
|
|
7
|
+
* - Hack (the wordmark), regular only, from hack-font 3.3.0
|
|
8
|
+
*
|
|
9
|
+
* Only app and web import this file; mcp-apps gets the family names from
|
|
10
|
+
* theme.css and falls back to system fonts.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
@font-face {
|
|
14
|
+
font-family: "Mona Sans";
|
|
15
|
+
src: url("../fonts/Mona-Sans.woff2") format("woff2");
|
|
16
|
+
font-weight: 200 900;
|
|
17
|
+
font-display: swap;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@font-face {
|
|
21
|
+
font-family: "Fira Code";
|
|
22
|
+
src: url("../fonts/FiraCode-VF.woff2") format("woff2");
|
|
23
|
+
font-weight: 300 700;
|
|
24
|
+
font-display: swap;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@font-face {
|
|
28
|
+
font-family: "hack";
|
|
29
|
+
src: url("../fonts/Hack-Regular.woff2") format("woff2");
|
|
30
|
+
font-weight: 400;
|
|
31
|
+
font-style: normal;
|
|
32
|
+
font-display: swap;
|
|
33
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* Shared styles - import AFTER tailwindcss */
|
|
2
|
+
/* NOTE: safelist.css is NOT imported here - import it separately in apps that need dynamic classes */
|
|
3
|
+
|
|
4
|
+
/* Shadcn component styles (managed by shadcn CLI) */
|
|
5
|
+
@import "./shadcn.css";
|
|
6
|
+
|
|
7
|
+
/* Shared themes */
|
|
8
|
+
@import "./theme.css";
|
|
9
|
+
@import "./base.css";
|
|
10
|
+
@import "./dark.css";
|
|
11
|
+
@import "./llama.css";
|
|
12
|
+
@import "./hackintosh.css";
|
|
13
|
+
@import "./bitboy.css";
|
|
14
|
+
@import "./designer.css";
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
@custom-variant hackintosh (&:where([data-theme="hackintosh"], [data-theme="hackintosh"] *, .hackintosh, .hackintosh *));
|
|
2
|
+
|
|
3
|
+
@layer base {
|
|
4
|
+
@variant hackintosh {
|
|
5
|
+
--background: 0 0% 100%; /* Classic Mac white */
|
|
6
|
+
--foreground: 0 0% 0%; /* Black text */
|
|
7
|
+
--card: 0 0% 93%; /* Light gray for windows */
|
|
8
|
+
--card-foreground: 0 0% 0%;
|
|
9
|
+
--popover: 0 0% 93%;
|
|
10
|
+
--popover-foreground: 0 0% 0%;
|
|
11
|
+
--primary: 0 0% 0%; /* Black for UI elements */
|
|
12
|
+
--primary-foreground: 0 0% 100%;
|
|
13
|
+
--secondary: 0 0% 85%; /* Lighter gray for buttons */
|
|
14
|
+
--secondary-foreground: 0 0% 0%;
|
|
15
|
+
--muted: 0 0% 85%;
|
|
16
|
+
--muted-foreground: 0 0% 45%;
|
|
17
|
+
--accent: 0 0% 75%; /* Menu bar gray */
|
|
18
|
+
--accent-foreground: 0 0% 0%;
|
|
19
|
+
--destructive: 0 100% 45%; /* Red for close buttons */
|
|
20
|
+
--destructive-foreground: 0 0% 100%;
|
|
21
|
+
--border: 0 0% 0%; /* Black borders */
|
|
22
|
+
--input: 0 0% 100%;
|
|
23
|
+
--ring: 0 0% 0%;
|
|
24
|
+
|
|
25
|
+
/* Mac-specific styles */
|
|
26
|
+
--mac-titlebar: 0 0% 65%; /* Title bar gray */
|
|
27
|
+
--mac-stripes: repeating-linear-gradient(
|
|
28
|
+
180deg,
|
|
29
|
+
0 0% 65%,
|
|
30
|
+
0 0% 65% 1px,
|
|
31
|
+
0 0% 75% 1px,
|
|
32
|
+
0 0% 75% 2px
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
--radius: 0px; /* Changed from 8px to match classic Mac UI */
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Hackintosh-specific utility classes */
|
|
39
|
+
.hackintosh .window-title {
|
|
40
|
+
background: var(--mac-stripes);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.hackintosh ::selection {
|
|
44
|
+
background-color: var(--primary);
|
|
45
|
+
color: var(--primary-foreground);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.hackintosh .pintura-editor {
|
|
49
|
+
--color-background: 255, 255, 255 !important;
|
|
50
|
+
--color-foreground: 0, 0, 0 !important;
|
|
51
|
+
--color-primary: var(--color-brand-pink) !important;
|
|
52
|
+
--color-primary-dark: var(--color-brand-pink) !important;
|
|
53
|
+
--color-primary-text: var(--color-foreground) !important;
|
|
54
|
+
--color-secondary: var(--color-brand-green) !important;
|
|
55
|
+
--color-secondary-dark: var(--color-brand-green) !important;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
@custom-variant llama (&:where([data-theme="llama"], [data-theme="llama"] *, .llama, .llama *));
|
|
2
|
+
|
|
3
|
+
@layer base {
|
|
4
|
+
.llama {
|
|
5
|
+
--llama-darkest: 220 13% 15%; /* Main Llama gray */
|
|
6
|
+
--llama-dark: 220 14% 18%; /* Slightly darker panel areas */
|
|
7
|
+
--llama-light: 120 100% 20%; /* Button surface gray */
|
|
8
|
+
--llama-lightest: 120 100% 50%; /* Classic Llama green text */
|
|
9
|
+
|
|
10
|
+
--background: var(--llama-darkest);
|
|
11
|
+
--foreground: var(--llama-lightest);
|
|
12
|
+
--card: var(--llama-dark);
|
|
13
|
+
--card-foreground: var(--llama-lightest);
|
|
14
|
+
--popover: var(--llama-dark);
|
|
15
|
+
--popover-foreground: var(--llama-lightest);
|
|
16
|
+
--primary: var(--llama-light);
|
|
17
|
+
--primary-foreground: var(--llama-darkest);
|
|
18
|
+
--secondary: var(--llama-dark);
|
|
19
|
+
--secondary-foreground: var(--llama-lightest);
|
|
20
|
+
--muted: var(--llama-dark);
|
|
21
|
+
--muted-foreground: var(--llama-light);
|
|
22
|
+
--accent: var(--llama-light);
|
|
23
|
+
--accent-foreground: var(--llama-darkest);
|
|
24
|
+
--destructive: var(--llama-darkest);
|
|
25
|
+
--destructive-foreground: var(--llama-lightest);
|
|
26
|
+
--border: var(--llama-light);
|
|
27
|
+
--input: var(--llama-light);
|
|
28
|
+
--ring: var(--llama-light);
|
|
29
|
+
|
|
30
|
+
/* Llama-specific styles */
|
|
31
|
+
--llama-bevel-light: 220 14% 35%;
|
|
32
|
+
--llama-bevel-dark: 220 14% 8%;
|
|
33
|
+
--llama-metal: linear-gradient(180deg,
|
|
34
|
+
var(--llama-bevel-light),
|
|
35
|
+
var(--llama-bevel-dark),
|
|
36
|
+
var(--llama-bevel-dark)
|
|
37
|
+
);
|
|
38
|
+
--llama-inset: inset 1px 1px var(--llama-bevel-dark),
|
|
39
|
+
inset -1px -1px var(--llama-bevel-light);
|
|
40
|
+
--llama-outset: -1px -1px var(--llama-bevel-dark),
|
|
41
|
+
1px 1px var(--llama-bevel-light);
|
|
42
|
+
--llama-display-bg: 0 0% 0%; /* Black display background */
|
|
43
|
+
|
|
44
|
+
/* Brand colors adjusted for Llama theme */
|
|
45
|
+
--brand-pink: var(--llama-lightest); /* Classic Llama green */
|
|
46
|
+
--brand-green: var(--llama-lightest); /* Classic Llama green */
|
|
47
|
+
--brand-purple: var(--llama-lightest); /* Classic Llama green */
|
|
48
|
+
--brand-lavender: var(--llama-lightest); /* Classic Llama green */
|
|
49
|
+
--brand-yellow: var(--llama-lightest); /* Classic Llama green */
|
|
50
|
+
--brand-lime: var(--llama-lightest); /* Classic Llama green */
|
|
51
|
+
--brand-blue: var(--llama-lightest); /* Classic Llama green */
|
|
52
|
+
--brand-red: var(--llama-darkest); /* Keep red for destructive actions */
|
|
53
|
+
--brand-orange: var(--llama-lightest); /* Classic Llama green */
|
|
54
|
+
--brand-teal: var(--llama-lightest); /* Classic Llama green */
|
|
55
|
+
|
|
56
|
+
--radius: 0px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Llama-specific utility classes */
|
|
60
|
+
.llama .bevel-outset {
|
|
61
|
+
background: var(--llama-metal);
|
|
62
|
+
box-shadow: var(--llama-outset);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.llama .bevel-inset {
|
|
66
|
+
background: var(--llama-metal);
|
|
67
|
+
box-shadow: var(--llama-inset);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.llama .metal-bg {
|
|
71
|
+
background: var(--llama-metal);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.llama .display-bg {
|
|
75
|
+
background: var(--llama-display-bg);
|
|
76
|
+
color: var(--llama-lightest); /* Classic green text */
|
|
77
|
+
font-family: "LCD", monospace; /* Add if you have an LCD-style font */
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.llama body {
|
|
81
|
+
background-image: linear-gradient(45deg, hsl(var(--secondary) / 0.1) 25%, transparent 25%),
|
|
82
|
+
linear-gradient(-45deg, hsl(var(--secondary) / 0.1) 25%, transparent 25%),
|
|
83
|
+
linear-gradient(45deg, transparent 75%, hsl(var(--secondary) / 0.1) 75%),
|
|
84
|
+
linear-gradient(-45deg, transparent 75%, hsl(var(--secondary) / 0.1) 75%);
|
|
85
|
+
background-size: 20px 20px;
|
|
86
|
+
background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.llama ::selection {
|
|
90
|
+
background-color: var(--llama-lightest);
|
|
91
|
+
color: var(--llama-darkest);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.llama .pintura-editor {
|
|
95
|
+
--color-background: 33, 37, 43 !important; /* rgb(38,41,44) is hsl(220,13%,15%) */
|
|
96
|
+
--color-foreground: 0, 255, 0 !important;
|
|
97
|
+
--color-primary: var(--llama-lightest) !important;
|
|
98
|
+
--color-primary-dark: var(--llama-light) !important;
|
|
99
|
+
--color-primary-text: var(--llama-darkest) !important;
|
|
100
|
+
--color-secondary: var(--llama-light) !important;
|
|
101
|
+
--color-secondary-dark: var(--llama-dark) !important;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
@source inline("grid-{cols,rows}-{1..24}");
|
|
2
|
+
@source inline("gap-{1..24}");
|
|
3
|
+
@source inline("{col,row}-span-{1..24}");
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/* bg/text/border colors */
|
|
7
|
+
@source inline("{bg,text,border,fill,stroke,from,to,via}-{blue,green,yellow,red,purple,pink,indigo,cyan,teal,lime,amber,orange,emerald,violet,fuchsia,rose,sky,gray,slate,zinc,neutral,stone,black,white}");
|
|
8
|
+
@source inline("{bg,text,border,fill,stroke,from,to,via}-{blue,green,yellow,red,purple,pink,indigo,cyan,teal,lime,amber,orange,emerald,violet,fuchsia,rose,sky,gray,slate,zinc,neutral,stone,black,white}-{50,{100..900..100},950}");
|
|
9
|
+
@source inline("{bg,text,border,fill,stroke,from,to,via}-{blue,green,yellow,red,purple,pink,indigo,cyan,teal,lime,amber,orange,emerald,violet,fuchsia,rose,sky,gray,slate,zinc,neutral,stone,black,white}/{5..95..5}");
|
|
10
|
+
@source inline("{bg,text,border,fill,stroke,from,to,via}-{blue,green,yellow,red,purple,pink,indigo,cyan,teal,lime,amber,orange,emerald,violet,fuchsia,rose,sky,gray,slate,zinc,neutral,stone,black,white}-{50,{100..900..100},950}/{5..95..5}");
|
|
11
|
+
/* gradients */
|
|
12
|
+
@source inline("bg-gradient-{to-r,to-l,to-t,to-b,to-tr,to-tl,to-br,to-bl}");
|
|
13
|
+
@source inline("bg-gradient-{to-t,to-b,to-l,to-r,to-tl,to-tr,to-bl,to-br}");
|
|
14
|
+
/* spacing - integers and fractional values */
|
|
15
|
+
@source inline("{p,m}{x,y,t,b,l,r,-}-{0..24}");
|
|
16
|
+
@source inline("{p,m}{x,y,t,b,l,r,-}-{0.5,1.5,2.5,3.5}");
|
|
17
|
+
@source inline("{p,m}-{0..24}");
|
|
18
|
+
@source inline("{p,m}-{0.5,1.5,2.5,3.5}");
|
|
19
|
+
|
|
20
|
+
/* size utilities */
|
|
21
|
+
@source inline("{w,h,min-w,min-h,max-w,max-h}-{0..24}");
|
|
22
|
+
@source inline("{w,h,min-w,min-h,max-w,max-h}-{full,auto}");
|
|
23
|
+
@source inline("{w,h,min-w,min-h,max-w,max-h}-[{0..1200..50}px]");
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@source inline("bg-opacity-{0..100}");
|
|
27
|
+
|
|
28
|
+
@source inline("opacity-{0..100}");
|
|
29
|
+
@source inline("backdrop-blur-{sm,md,lg,xl,2xl,3xl}");
|
|
30
|
+
@source inline("rounded{-none,sm,md,lg,xl,2xl,3xl,full}");
|
|
31
|
+
@source inline("border-{0..8}");
|
|
32
|
+
@source inline("flex{,-col,-row,-wrap,-nowrap}");
|
|
33
|
+
@source inline("items-{start,center,end,baseline,stretch}");
|
|
34
|
+
@source inline("justify-{start,center,end,between,around,evenly}");
|
|
35
|
+
@source inline("flex-{1,auto,none,initial}");
|
|
36
|
+
@source inline("text-{xs,sm,base,lg,xl,2xl,3xl,4xl,5xl,6xl}");
|
|
37
|
+
@source inline("font-{thin,extralight,light,normal,medium,semibold,bold,extrabold,black}");
|
|
38
|
+
@source inline("gap-{0..24}");
|
|
39
|
+
@source inline("shadow{-sm,,md,lg,xl,2xl,inner}");
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
@import "tw-animate-css";
|
|
2
|
+
|
|
3
|
+
@custom-variant dark (&:is(.dark *));
|
|
4
|
+
|
|
5
|
+
/* Shadcn UI component styles */
|
|
6
|
+
/* This file is managed by shadcn CLI - avoid manual edits */
|
|
7
|
+
/* New component installations will add styles here */
|
|
8
|
+
|
|
9
|
+
@layer base {
|
|
10
|
+
/* shadcn base styles go here */
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
:root {
|
|
14
|
+
|
|
15
|
+
--sidebar: hsl(0 0% 98%);
|
|
16
|
+
|
|
17
|
+
--sidebar-foreground: hsl(240 5.3% 26.1%);
|
|
18
|
+
|
|
19
|
+
--sidebar-primary: hsl(240 5.9% 10%);
|
|
20
|
+
|
|
21
|
+
--sidebar-primary-foreground: hsl(0 0% 98%);
|
|
22
|
+
|
|
23
|
+
--sidebar-accent: hsl(240 4.8% 95.9%);
|
|
24
|
+
|
|
25
|
+
--sidebar-accent-foreground: hsl(240 5.9% 10%);
|
|
26
|
+
|
|
27
|
+
--sidebar-border: hsl(220 13% 91%);
|
|
28
|
+
|
|
29
|
+
--sidebar-ring: hsl(217.2 91.2% 59.8%);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.dark {
|
|
33
|
+
|
|
34
|
+
--sidebar: hsl(240 5.9% 10%);
|
|
35
|
+
|
|
36
|
+
--sidebar-foreground: hsl(240 4.8% 95.9%);
|
|
37
|
+
|
|
38
|
+
--sidebar-primary: hsl(224.3 76.3% 48%);
|
|
39
|
+
|
|
40
|
+
--sidebar-primary-foreground: hsl(0 0% 100%);
|
|
41
|
+
|
|
42
|
+
--sidebar-accent: hsl(240 3.7% 15.9%);
|
|
43
|
+
|
|
44
|
+
--sidebar-accent-foreground: hsl(240 4.8% 95.9%);
|
|
45
|
+
|
|
46
|
+
--sidebar-border: hsl(240 3.7% 15.9%);
|
|
47
|
+
|
|
48
|
+
--sidebar-ring: hsl(217.2 91.2% 59.8%);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@theme inline {
|
|
52
|
+
|
|
53
|
+
--color-sidebar: var(--sidebar);
|
|
54
|
+
|
|
55
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
56
|
+
|
|
57
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
58
|
+
|
|
59
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
60
|
+
|
|
61
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
62
|
+
|
|
63
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
64
|
+
|
|
65
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
66
|
+
|
|
67
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@layer base {
|
|
71
|
+
* {
|
|
72
|
+
@apply border-border outline-ring/50;
|
|
73
|
+
}
|
|
74
|
+
body {
|
|
75
|
+
@apply bg-background text-foreground;
|
|
76
|
+
}
|
|
77
|
+
}
|