frutjam 2.2.3 โ†’ 2.2.5

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.
Files changed (77) hide show
  1. package/README.github.md +330 -0
  2. package/README.md +66 -128
  3. package/README.npm.md +110 -0
  4. package/dist/base/reboot/object.js +1 -1
  5. package/dist/base.css +3 -3
  6. package/dist/components/accordion.css +2 -2
  7. package/dist/components/alert.css +2 -2
  8. package/dist/components/avatar.css +2 -2
  9. package/dist/components/badge.css +2 -2
  10. package/dist/components/breadcrumb.css +2 -2
  11. package/dist/components/button.css +2 -2
  12. package/dist/components/card.css +2 -2
  13. package/dist/components/carousel.css +2 -2
  14. package/dist/components/chat.css +2 -2
  15. package/dist/components/checkbox.css +2 -2
  16. package/dist/components/collapsible/object.js +1 -1
  17. package/dist/components/collapsible.css +2 -2
  18. package/dist/components/combobox/object.js +1 -1
  19. package/dist/components/combobox.css +2 -2
  20. package/dist/components/countdown.css +2 -2
  21. package/dist/components/diff.css +2 -2
  22. package/dist/components/divider/object.js +1 -1
  23. package/dist/components/divider.css +2 -2
  24. package/dist/components/drawer/object.js +1 -1
  25. package/dist/components/drawer.css +2 -2
  26. package/dist/components/footer.css +2 -2
  27. package/dist/components/header.css +2 -2
  28. package/dist/components/hero.css +2 -2
  29. package/dist/components/indicator.css +2 -2
  30. package/dist/components/input.css +2 -2
  31. package/dist/components/join.css +2 -2
  32. package/dist/components/kbd.css +2 -2
  33. package/dist/components/link.css +2 -2
  34. package/dist/components/loading.css +2 -2
  35. package/dist/components/marquee/object.js +1 -1
  36. package/dist/components/marquee.css +2 -2
  37. package/dist/components/mask.css +2 -2
  38. package/dist/components/menu.css +2 -2
  39. package/dist/components/modal.css +2 -2
  40. package/dist/components/navbar.css +2 -2
  41. package/dist/components/popover.css +2 -2
  42. package/dist/components/progress.css +2 -2
  43. package/dist/components/radial-progress.css +2 -2
  44. package/dist/components/radio.css +2 -2
  45. package/dist/components/range.css +2 -2
  46. package/dist/components/rating.css +2 -2
  47. package/dist/components/select.css +2 -2
  48. package/dist/components/sidebar.css +2 -2
  49. package/dist/components/skeleton.css +2 -2
  50. package/dist/components/stat/object.js +1 -1
  51. package/dist/components/stat.css +2 -2
  52. package/dist/components/status.css +2 -2
  53. package/dist/components/steps.css +2 -2
  54. package/dist/components/surface.css +2 -2
  55. package/dist/components/swap/object.js +1 -1
  56. package/dist/components/swap.css +2 -2
  57. package/dist/components/table/object.js +1 -1
  58. package/dist/components/table.css +2 -2
  59. package/dist/components/tabs/object.js +1 -1
  60. package/dist/components/tabs.css +2 -2
  61. package/dist/components/tag.css +2 -2
  62. package/dist/components/textarea.css +2 -2
  63. package/dist/components/timeline.css +2 -2
  64. package/dist/components/toast.css +2 -2
  65. package/dist/components/toggle.css +2 -2
  66. package/dist/components/tooltip/object.js +1 -1
  67. package/dist/components/tooltip.css +2 -2
  68. package/dist/frutjam.min.css +4 -4
  69. package/dist/plugin.js +4 -4
  70. package/dist/themes/darkberry.css +1 -1
  71. package/dist/themes/snowberry.css +1 -1
  72. package/dist/utilities/headings.css +2 -2
  73. package/dist/utilities/para.css +2 -2
  74. package/dist/utilities/typography.css +1 -1
  75. package/dist/utilities/wrapper.css +2 -2
  76. package/package.json +8 -7
  77. package/packages/js/combobox.js +5 -5
@@ -0,0 +1,330 @@
1
+ [![npm installs][npm_installs]](https://www.npmjs.com/package/frutjam)
2
+ [![Jsdelivr hits][jsdelivr]](https://cdn.jsdelivr.net/npm/frutjam)
3
+ [![Latest Release](https://img.shields.io/npm/v/frutjam.svg)](https://github.com/nezanuha/frutjam/releases)
4
+ [![License](https://img.shields.io/npm/l/frutjam.svg)](https://github.com/nezanuha/frutjam/blob/master/LICENSE)
5
+ [![Secured](https://img.shields.io/badge/Security-Passed-green)](https://snyk.io/test/github/nezanuha/frutjam)
6
+
7
+ ---
8
+
9
+ # Frutjam โ€” CSS-Only Tailwind CSS UI Component Library
10
+
11
+ **Frutjam** is a free, open-source Tailwind CSS v4 component library. 65+ production-ready UI components with **zero JavaScript**, guaranteed **WCAG AA accessibility**, and a free **MCP server for AI editors** (Cherry). Works with any framework: React, Vue, HTMX, Django, Laravel, plain HTML.
12
+
13
+ ๐ŸŒ **[frutjam.com](https://frutjam.com)** ยท ๐Ÿ“ฆ **[npm](https://www.npmjs.com/package/frutjam)** ยท ๐Ÿ’ **[Cherry MCP](https://frutjam.com/products/cherry)**
14
+
15
+ ---
16
+
17
+ ## What is Frutjam?
18
+
19
+ Frutjam is a **CSS-only Tailwind CSS component library** built for Tailwind CSS v4. You install it as a Tailwind plugin โ€” one line in your CSS โ€” and instantly get 65+ accessible, copy-paste UI components: buttons, modals, drawers, tabs, toasts, carousels, tables, forms, and more.
20
+
21
+ Every component works with pure HTML and CSS. No JavaScript framework required. No build pipeline beyond Tailwind itself. Drop it into any stack and start building.
22
+
23
+ ---
24
+
25
+ ## Quick Install
26
+
27
+ ```bash
28
+ npm install -D frutjam
29
+ ```
30
+
31
+ ```css
32
+ @import "tailwindcss";
33
+ @plugin "frutjam";
34
+ ```
35
+
36
+ **That's it.** All 65+ components are available immediately. No imports, no config, no extra stylesheets.
37
+
38
+ ---
39
+
40
+ ## Why Frutjam?
41
+
42
+ | | Frutjam | DaisyUI | Shadcn UI | Flowbite |
43
+ |---|---|---|---|---|
44
+ | Zero JavaScript | โœ… | โœ… | โŒ React required | โš ๏ธ Some JS |
45
+ | Tailwind v4 native | โœ… | โš ๏ธ v3 + v4 | โš ๏ธ | โŒ |
46
+ | WCAG AA guaranteed | โœ… Every component | โš ๏ธ | โš ๏ธ | โš ๏ธ |
47
+ | OKLCH color system | โœ… | โŒ | โŒ | โŒ |
48
+ | MCP server for AI editors | โœ… Cherry (free tier) | โœ… Blueprint (paid only) | โŒ | โŒ |
49
+ | Framework-agnostic | โœ… | โœ… | โŒ React only | โš ๏ธ |
50
+ | Copy-paste friendly | โœ… | โœ… | โœ… | โœ… |
51
+ | MIT license | โœ… | โœ… | โœ… | โœ… |
52
+
53
+ **The short version:** Frutjam is the only Tailwind v4-native component library with guaranteed WCAG AA accessibility, an OKLCH color system, and a free MCP server for AI-assisted development.
54
+
55
+ ---
56
+
57
+ ## Key Features
58
+
59
+ - **Zero JavaScript** โ€” every component works with pure CSS and semantic HTML. Native `<dialog>` for modals, `<details>` for accordions, CSS `:has()` for interactive states. No `addEventListener`, no hydration, no runtime.
60
+ - **65+ components** โ€” buttons, modals, tabs, drawers, tooltips, carousels, cards, alerts, toasts, tables, forms, and more. All production-ready.
61
+ - **WCAG AA by default** โ€” every color pair (`--color-primary` / `--color-on-primary`) is hand-tuned in OKLCH to meet WCAG AA contrast requirements. Semantic HTML throughout.
62
+ - **Tailwind v4 native** โ€” built as a Tailwind v4 plugin using `@plugin`. No legacy `tailwind.config.js`. OKLCH design tokens via CSS custom properties.
63
+ - **Framework-agnostic** โ€” works with React, Next.js, Vue, Nuxt, Svelte, HTMX, Django, Laravel Blade, Astro, Rails, plain HTML โ€” anything that outputs HTML.
64
+ - **Themeable** โ€” swap themes with `data-theme="dark"`. Build custom themes in CSS with OKLCH tokens. Supports light, dark, and system preference automatically.
65
+ - **Treeshaken** โ€” only the components you use are included. Tailwind's engine removes unused styles at build time.
66
+ - **CDN-ready** โ€” no build step needed. Import directly from jsDelivr.
67
+
68
+ ---
69
+
70
+ ## ๐Ÿ’ Cherry MCP โ€” AI Editor Integration
71
+
72
+ Cherry is Frutjam's **free MCP server** that gives AI coding assistants accurate, real-time access to Frutjam component docs.
73
+
74
+ Without Cherry, AI assistants (Claude Code, Cursor, GitHub Copilot) hallucinate Tailwind CSS class names โ€” inventing classes that don't exist. Cherry solves this by feeding your AI editor the exact Frutjam specs at the moment it needs them.
75
+
76
+ **Works with:** Claude Code ยท Cursor ยท VS Code ยท Windsurf ยท Zed ยท Cline ยท any MCP-compatible editor
77
+
78
+ ```json
79
+ {
80
+ "mcpServers": {
81
+ "frutjam": {
82
+ "command": "npx",
83
+ "args": ["-y", "frutjam-cherry"]
84
+ }
85
+ }
86
+ }
87
+ ```
88
+
89
+ [**Get Cherry MCP โ†’**](https://frutjam.com/products/cherry)
90
+
91
+ ---
92
+
93
+ ## Components
94
+
95
+ 65+ free, production-ready CSS-only Tailwind CSS components:
96
+
97
+ ### Inputs & Forms
98
+ - [Button](https://frutjam.com/components/button)
99
+ - [Checkbox](https://frutjam.com/components/checkbox)
100
+ - [Radio](https://frutjam.com/components/radio)
101
+ - [Toggle](https://frutjam.com/components/toggle)
102
+ - [Input](https://frutjam.com/components/input)
103
+ - [Textarea](https://frutjam.com/components/textarea)
104
+ - [Select](https://frutjam.com/components/select)
105
+ - [Range](https://frutjam.com/components/range)
106
+ - [Rating](https://frutjam.com/components/rating)
107
+ - [Combobox](https://frutjam.com/components/combobox)
108
+
109
+ ### Layout & Navigation
110
+ - [Navbar](https://frutjam.com/components/navbar)
111
+ - [Sidebar](https://frutjam.com/components/sidebar)
112
+ - [Drawer](https://frutjam.com/components/drawer)
113
+ - [Menu](https://frutjam.com/components/menu)
114
+ - [Breadcrumb](https://frutjam.com/components/breadcrumb)
115
+ - [Tabs](https://frutjam.com/components/tabs)
116
+ - [Steps](https://frutjam.com/components/steps)
117
+ - [Footer](https://frutjam.com/components/footer)
118
+ - [Header](https://frutjam.com/components/header)
119
+ - [Join](https://frutjam.com/components/join)
120
+ - [Pagination](https://frutjam.com/components/pagination)
121
+
122
+ ### Feedback & Overlay
123
+ - [Modal](https://frutjam.com/components/modal)
124
+ - [Toast](https://frutjam.com/components/toast)
125
+ - [Alert](https://frutjam.com/components/alert)
126
+ - [Tooltip](https://frutjam.com/components/tooltip)
127
+ - [Popover](https://frutjam.com/components/popover)
128
+ - [Loading](https://frutjam.com/components/loading)
129
+ - [Skeleton](https://frutjam.com/components/skeleton)
130
+ - [Progress](https://frutjam.com/components/progress)
131
+ - [Radial Progress](https://frutjam.com/components/radial-progress)
132
+
133
+ ### Data Display
134
+ - [Card](https://frutjam.com/components/card)
135
+ - [Table](https://frutjam.com/components/table)
136
+ - [Stat](https://frutjam.com/components/stat)
137
+ - [Badge](https://frutjam.com/components/badge)
138
+ - [Tag](https://frutjam.com/components/tag)
139
+ - [Avatar](https://frutjam.com/components/avatar)
140
+ - [Indicator](https://frutjam.com/components/indicator)
141
+ - [Diff](https://frutjam.com/components/diff)
142
+ - [Timeline](https://frutjam.com/components/timeline)
143
+ - [Chat](https://frutjam.com/components/chat)
144
+
145
+ ### Typography & Decoration
146
+ - [Hero](https://frutjam.com/components/hero)
147
+ - [Divider](https://frutjam.com/components/divider)
148
+ - [Kbd](https://frutjam.com/components/kbd)
149
+ - [Link](https://frutjam.com/components/link)
150
+ - [Mask](https://frutjam.com/components/mask)
151
+ - [Swap](https://frutjam.com/components/swap)
152
+ - [Countdown](https://frutjam.com/components/countdown)
153
+ - [Marquee](https://frutjam.com/components/marquee)
154
+ - [Carousel](https://frutjam.com/components/carousel)
155
+ - [Accordion](https://frutjam.com/components/accordion)
156
+ - [Collapsible](https://frutjam.com/components/collapsible)
157
+ - [Surface](https://frutjam.com/components/surface)
158
+
159
+ [**Browse all components with live previews โ†’**](https://frutjam.com/components)
160
+
161
+ ---
162
+
163
+ ## Usage Examples
164
+
165
+ ```html
166
+ <!-- Primary button -->
167
+ <button class="btn btn-primary">Get Started</button>
168
+
169
+ <!-- Outline button with badge -->
170
+ <button class="btn btn-outline">
171
+ Notifications
172
+ <span class="badge badge-primary">3</span>
173
+ </button>
174
+
175
+ <!-- CSS-only modal โ€” no JavaScript -->
176
+ <button popovertarget="my-modal" class="btn btn-primary">Open Modal</button>
177
+ <dialog id="my-modal" popover class="modal">
178
+ <div class="modal-content">
179
+ <h3 class="heading-lg">Pure CSS modal</h3>
180
+ <p class="para">Zero JavaScript. Native browser popover API.</p>
181
+ <button popovertarget="my-modal" class="btn mt-4">Close</button>
182
+ </div>
183
+ </dialog>
184
+
185
+ <!-- Alert -->
186
+ <div class="alert alert-success">
187
+ <p>Your changes have been saved.</p>
188
+ </div>
189
+
190
+ <!-- Card -->
191
+ <div class="card">
192
+ <div class="card-content">
193
+ <h2 class="heading-lg">Card title</h2>
194
+ <p class="para">Card content goes here.</p>
195
+ </div>
196
+ </div>
197
+
198
+ <!-- Input -->
199
+ <div class="flex flex-col gap-2">
200
+ <label class="text-sm font-medium">Email</label>
201
+ <input type="email" class="input" placeholder="you@example.com">
202
+ </div>
203
+
204
+ <!-- Badge variants -->
205
+ <span class="badge badge-primary">Primary</span>
206
+ <span class="badge badge-success badge-soft">Success</span>
207
+ <span class="badge badge-error badge-outline">Error</span>
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Accessibility
213
+
214
+ Frutjam is designed for WCAG AA compliance from the ground up:
215
+
216
+ - **Color contrast** โ€” every color token pair is hand-tuned in OKLCH to exceed WCAG AA 4.5:1 contrast ratio for text
217
+ - **Semantic HTML** โ€” native `<dialog>` for modals, `<details>` for accordions, `<nav>` for navigation, correct heading hierarchy
218
+ - **Keyboard navigation** โ€” all interactive components are fully keyboard accessible
219
+ - **Screen reader support** โ€” ARIA attributes included where native semantics are insufficient
220
+ - **Focus management** โ€” visible focus rings on all interactive elements, respects `prefers-reduced-motion`
221
+
222
+ ---
223
+
224
+ ## Themes
225
+
226
+ ```html
227
+ <html data-theme="darkberry">
228
+ ```
229
+
230
+ ```css
231
+ /* Define your own theme */
232
+ @layer theme {
233
+ [data-theme="ocean"] {
234
+ --color-primary: oklch(60% 0.2 220);
235
+ --color-on-primary: oklch(98% 0.01 220);
236
+ --color-base: oklch(15% 0.02 220);
237
+ --color-on-base: oklch(92% 0.01 220);
238
+ }
239
+ }
240
+ ```
241
+
242
+ [**Explore themes โ†’**](https://frutjam.com/themes)
243
+
244
+ ---
245
+
246
+ ## Plugin Options
247
+
248
+ | Option | Default | Description |
249
+ |--------|---------|-------------|
250
+ | `prefix` | `""` | Prefix all Frutjam class names (e.g. `fj` โ†’ `fj-btn`) |
251
+ | `reset` | `true` | Include browser reset and element defaults |
252
+ | `root` | `":root"` | Remap CSS variable declarations to a custom selector |
253
+ | `logs` | `true` | Show build-time console output |
254
+ | `include` | `[]` | Include only specific components |
255
+ | `exclude` | `[]` | Exclude specific components |
256
+
257
+ ---
258
+
259
+ ## CDN (No Build Step)
260
+
261
+ ```html
262
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/frutjam/dist/frutjam.min.css" />
263
+ ```
264
+
265
+ ---
266
+
267
+ ## Framework Support
268
+
269
+ | Framework | Status |
270
+ |-----------|--------|
271
+ | HTML / Static sites | โœ… |
272
+ | React / Next.js | โœ… |
273
+ | Vue / Nuxt | โœ… |
274
+ | Svelte / SvelteKit | โœ… |
275
+ | HTMX | โœ… |
276
+ | Django | โœ… |
277
+ | Laravel / Blade | โœ… |
278
+ | Astro | โœ… |
279
+ | Ruby on Rails | โœ… |
280
+ | Any HTML output | โœ… |
281
+
282
+ ---
283
+
284
+ ## Documentation
285
+
286
+ - [Getting Started](https://frutjam.com/docs/overview)
287
+ - [Installation Guide](https://frutjam.com/docs/installation)
288
+ - [Configuration](https://frutjam.com/docs/configuration)
289
+ - [Theming](https://frutjam.com/docs/themes)
290
+ - [Colors](https://frutjam.com/docs/colors)
291
+ - [All Components](https://frutjam.com/components)
292
+ - [UI Blocks](https://frutjam.com/blocks)
293
+ - [Cherry MCP](https://frutjam.com/products/cherry)
294
+
295
+ ---
296
+
297
+ ## Community
298
+
299
+ - [Discord](https://discord.gg/FvjytjQSSZ)
300
+ - [X / Twitter](https://x.com/FrutjamUI)
301
+ - [Write for Us](https://frutjam.com/write-for-us)
302
+
303
+ ---
304
+
305
+ ## Contributing
306
+
307
+ 1. Fork the repository
308
+ 2. Create a feature branch: `git checkout -b feature/my-component`
309
+ 3. Commit your changes: `git commit -m 'Add my-component'`
310
+ 4. Push: `git push origin feature/my-component`
311
+ 5. Open a Pull Request
312
+
313
+ ---
314
+
315
+ ## License
316
+
317
+ MIT โ€” free for personal and commercial use. See [LICENSE](LICENSE).
318
+
319
+ ---
320
+
321
+ ## โญ Star this repo
322
+
323
+ If Frutjam saves you time, a star helps others find it.
324
+
325
+ [![GitHub stars](https://img.shields.io/github/stars/nezanuha/frutjam.svg?style=social&label=Star&maxAge=2592000)](https://github.com/nezanuha/frutjam)
326
+
327
+ ---
328
+
329
+ [jsdelivr]: https://badgen.net/jsdelivr/hits/npm/frutjam
330
+ [npm_installs]: https://badgen.net/npm/dt/frutjam
package/README.md CHANGED
@@ -1,172 +1,110 @@
1
- [![npm installs][npm_installs]](https://www.npmjs.com/package/frutjam)
2
- [![Jsdelivr hits][jsdelivr]](https://cdn.jsdelivr.net/npm/frutjam)
3
- [![Latest Release](https://img.shields.io/npm/v/frutjam.svg)](https://github.com/nezanuha/frutjam/releases)
4
- [![License](https://img.shields.io/npm/l/frutjam.svg)](https://github.com/nezanuha/frutjam/blob/master/LICENSE)
5
- [![Secured](https://img.shields.io/badge/Security-Passed-green)](https://snyk.io/test/github/nezanuha/frutjam)
1
+ # Frutjam
6
2
 
7
- ---
8
-
9
- # Frutjam: Free & Open-Source Tailwind CSS UI Library
10
-
11
- [Frutjam](https://frutjam.com) is a lightweight, modern UI library built for speed. It provides prebuilt Tailwind CSS components that are completely free to use โ€” pure CSS, no JavaScript required. Works with Vite, PostCSS, Next.js, or any framework.
12
-
13
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
14
- [![GitHub stars](https://img.shields.io/github/stars/nezanuha/frutjam.svg)](https://github.com/nezanuha/frutjam/stargazers)
15
-
16
- ## Pure CSS, no JavaScript needed. Framework-agnostic and fully compatible everywhere.
17
-
18
- **Frutjam** is a UI component library built on top of **Tailwind CSS**, designed to help developers build accessible, SEO-friendly, and W3C-compliant interfacesโ€”fast. With a wide selection of prebuilt components and themes, Frutjam makes it easy to hit the ground running or fully customize your design system.
19
-
20
- ---
21
-
22
- ## Key Features
3
+ CSS-only Tailwind CSS v4 component library. 65+ accessible, copy-paste UI components โ€” zero JavaScript, WCAG AA guaranteed, framework-agnostic.
23
4
 
24
- * ๐Ÿงฑ **Prebuilt UI Components** โ€” Plug-and-play components to save time
25
- * ๐ŸŽจ **Customizable Themes** โ€” Built-in themes plus custom theme injection
26
- * ๐Ÿท๏ธ **Flexible Prefix Support** โ€” Use Frutjamโ€™s own prefix (`fj-btn`), Tailwindโ€™s variant prefix (`tw:btn`), or both together (`tw:fj-btn`)
27
- * โ™ฟ **Accessibility-First** โ€” Follows accessibility best practices
28
- * ๐Ÿ” **SEO-Friendly** โ€” Semantic markup optimized for search engines
29
- * โœ… **W3C Standards** โ€” Clean, valid HTML structure
30
- * โš™๏ธ **Built for Tailwind CSS** โ€” Seamless integration with your Tailwind setup
5
+ **[frutjam.com](https://frutjam.com)** ยท [Components](https://frutjam.com/components) ยท [Docs](https://frutjam.com/docs) ยท [Cherry MCP](https://frutjam.com/products/cherry)
31
6
 
32
7
  ---
33
8
 
34
- ## Installation & Usage
9
+ ## Install
35
10
 
36
11
  ```bash
37
- npm install frutjam
12
+ npm install -D frutjam
38
13
  ```
39
14
 
40
- In your main stylesheet:
41
-
42
15
  ```css
43
16
  @import "tailwindcss";
44
17
  @plugin "frutjam";
45
18
  ```
46
19
 
47
- ## Basic Example
48
-
49
- ```html
50
- <button class="btn btn-primary">
51
- Launch App
52
- </button>
53
- ```
54
-
55
- ## With Prefix
20
+ That's it. All 65+ components available immediately.
56
21
 
57
- **Frutjam prefix only** โ€” renames Frutjam class names:
22
+ ---
58
23
 
59
- ```css
60
- @import "tailwindcss";
61
- @plugin "frutjam" {
62
- prefix: fj;
63
- }
64
- ```
24
+ ## CDN
65
25
 
66
26
  ```html
67
- <button class="fj-btn fj-btn-primary">Launch App</button>
27
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/frutjam/dist/frutjam.min.css" />
68
28
  ```
69
29
 
70
- **Tailwind prefix only** โ€” Tailwind's `prefix()` acts as a variant; all utilities (including Frutjam's) require it in HTML:
30
+ ---
71
31
 
72
- ```css
73
- @import "tailwindcss" prefix(tw);
74
- @plugin "frutjam";
75
- ```
32
+ ## Usage
76
33
 
77
34
  ```html
78
- <button class="tw:btn tw:btn-primary">Launch App</button>
35
+ <!-- Button -->
36
+ <button class="btn btn-primary">Get Started</button>
37
+ <button class="btn btn-outline">Cancel</button>
38
+
39
+ <!-- Badge -->
40
+ <span class="badge badge-success">Active</span>
41
+ <span class="badge badge-error badge-soft">Error</span>
42
+
43
+ <!-- Alert -->
44
+ <div class="alert alert-success">Saved successfully.</div>
45
+
46
+ <!-- Card -->
47
+ <div class="card">
48
+ <div class="card-content">
49
+ <h2 class="heading-lg">Title</h2>
50
+ <p class="para">Content goes here.</p>
51
+ </div>
52
+ </div>
53
+
54
+ <!-- Input -->
55
+ <input type="text" class="input" placeholder="Enter text...">
56
+
57
+ <!-- CSS-only modal โ€” no JavaScript -->
58
+ <button popovertarget="modal" class="btn btn-primary">Open</button>
59
+ <dialog id="modal" popover class="modal">
60
+ <div class="modal-content">
61
+ <h3 class="heading-lg">Modal title</h3>
62
+ <button popovertarget="modal" class="btn mt-4">Close</button>
63
+ </div>
64
+ </dialog>
79
65
  ```
80
66
 
81
- **Both prefixes** โ€” Frutjam renames its classes, Tailwind's variant prefix is required on top:
67
+ ---
68
+
69
+ ## Plugin Options
82
70
 
83
71
  ```css
84
- @import "tailwindcss" prefix(tw);
85
72
  @plugin "frutjam" {
86
- prefix: fj;
73
+ prefix: fj; /* fj-btn, fj-card, etc. */
74
+ reset: true; /* browser reset (default: true) */
87
75
  }
88
76
  ```
89
77
 
90
- ```html
91
- <button class="tw:fj-btn tw:fj-btn-primary">Launch App</button>
92
- ```
93
-
94
- ## Plugin Options
95
-
96
- All options can be set in CSS via `@plugin "frutjam" { ... }` or in `postcss.config.js`:
97
-
98
- | Option | Default | Description |
99
- |--------|---------|-------------|
100
- | `prefix` | `""` | Prefix all Frutjam class names (e.g. `fj` โ†’ `fj-btn`) |
101
- | `reset` | `true` | Include browser reset and element defaults |
102
- | `root` | `":root"` | Remap CSS var declarations to a custom selector (e.g. `":host"`) |
103
- | `logs` | `true` | Show build-time console output |
104
- | `include` | `[]` | Only include specific components/utilities |
105
- | `exclude` | `[]` | Exclude specific components/utilities |
78
+ ---
106
79
 
107
- ## Custom Themes
80
+ ## ๐Ÿ’ Cherry MCP โ€” Stop AI from hallucinating class names
108
81
 
109
- Define themes directly in your stylesheet using `@layer theme`:
82
+ Cherry is a free MCP server that gives Claude Code, Cursor, and VS Code accurate real-time Frutjam docs โ€” no more invented class names.
110
83
 
111
- ```css
112
- @layer theme {
113
- [data-theme="blueberry"] {
114
- --scheme-color: light;
115
- --color-primary: oklch(60% 0.2 220);
116
- --color-on-primary: oklch(98% 0.01 220);
117
- --color-base: oklch(98% 0.01 220);
118
- --color-on-base: oklch(20% 0.02 220);
84
+ ```json
85
+ {
86
+ "mcpServers": {
87
+ "frutjam": {
88
+ "command": "npx",
89
+ "args": ["-y", "frutjam-cherry"]
90
+ }
119
91
  }
120
92
  }
121
93
  ```
122
94
 
123
- Apply any theme with a `data-theme` attribute:
124
-
125
- ```html
126
- <body data-theme="blueberry">
127
- ...
128
- </body>
129
- ```
130
-
131
- Thatโ€™s it โ€” youโ€™re ready to build with Frutjam components!
132
-
133
- ---
134
-
135
- ## Live Demo & Documentation
136
-
137
- For full documentation and live interactive previews, visit our official site: ๐Ÿ‘‰ **[frutjam](https://frutjam.com/docs)**
138
-
139
- ---
140
-
141
- ## ๐Ÿค Contributing
142
-
143
- Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
144
-
145
- 1. Fork the repo
146
- 2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
147
- 3. Commit your Changes (git commit -m 'Add some AmazingFeature')
148
- 4. Push to the Branch (git push origin feature/AmazingFeature)
149
- 5. Open a Pull Request
150
-
151
- Please check the [contributing guidelines](.github/CONTRIBUTING.md) before starting.
95
+ [**Get Cherry โ†’**](https://frutjam.com/products/cherry)
152
96
 
153
97
  ---
154
98
 
155
- ## ๐Ÿ“„ License
99
+ ## Links
156
100
 
157
- Distributed under the MIT License. See [MIT License](LICENSE) for more information.
101
+ - [Full documentation](https://frutjam.com/docs)
102
+ - [All 65+ components](https://frutjam.com/components)
103
+ - [UI Blocks](https://frutjam.com/blocks)
104
+ - [Themes](https://frutjam.com/docs/themes)
105
+ - [GitHub](https://github.com/nezanuha/frutjam)
106
+ - [Discord](https://discord.gg/FvjytjQSSZ)
158
107
 
159
- ---
160
-
161
- Thank you for choosing the Frutjam UI Library โ€“ Happy coding!
162
-
163
- ## โญ Support
164
-
165
- If you like this project, consider giving it a star! ๐ŸŒŸ
166
-
167
- [![GitHub stars](https://img.shields.io/github/stars/nezanuha/frutjam.svg?style=social&label=Star&maxAge=2592000)](https://github.com/nezanuha/frutjam/stargazers)
168
-
169
- ---
108
+ ## License
170
109
 
171
- [jsdelivr]: https://badgen.net/jsdelivr/hits/npm/frutjam
172
- [npm_installs]: https://badgen.net/npm/dt/frutjam
110
+ MIT
package/README.npm.md ADDED
@@ -0,0 +1,110 @@
1
+ # Frutjam
2
+
3
+ CSS-only Tailwind CSS v4 component library. 65+ accessible, copy-paste UI components โ€” zero JavaScript, WCAG AA guaranteed, framework-agnostic.
4
+
5
+ **[frutjam.com](https://frutjam.com)** ยท [Components](https://frutjam.com/components) ยท [Docs](https://frutjam.com/docs) ยท [Cherry MCP](https://frutjam.com/products/cherry)
6
+
7
+ ---
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npm install -D frutjam
13
+ ```
14
+
15
+ ```css
16
+ @import "tailwindcss";
17
+ @plugin "frutjam";
18
+ ```
19
+
20
+ That's it. All 65+ components available immediately.
21
+
22
+ ---
23
+
24
+ ## CDN
25
+
26
+ ```html
27
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/frutjam/dist/frutjam.min.css" />
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Usage
33
+
34
+ ```html
35
+ <!-- Button -->
36
+ <button class="btn btn-primary">Get Started</button>
37
+ <button class="btn btn-outline">Cancel</button>
38
+
39
+ <!-- Badge -->
40
+ <span class="badge badge-success">Active</span>
41
+ <span class="badge badge-error badge-soft">Error</span>
42
+
43
+ <!-- Alert -->
44
+ <div class="alert alert-success">Saved successfully.</div>
45
+
46
+ <!-- Card -->
47
+ <div class="card">
48
+ <div class="card-content">
49
+ <h2 class="heading-lg">Title</h2>
50
+ <p class="para">Content goes here.</p>
51
+ </div>
52
+ </div>
53
+
54
+ <!-- Input -->
55
+ <input type="text" class="input" placeholder="Enter text...">
56
+
57
+ <!-- CSS-only modal โ€” no JavaScript -->
58
+ <button popovertarget="modal" class="btn btn-primary">Open</button>
59
+ <dialog id="modal" popover class="modal">
60
+ <div class="modal-content">
61
+ <h3 class="heading-lg">Modal title</h3>
62
+ <button popovertarget="modal" class="btn mt-4">Close</button>
63
+ </div>
64
+ </dialog>
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Plugin Options
70
+
71
+ ```css
72
+ @plugin "frutjam" {
73
+ prefix: fj; /* fj-btn, fj-card, etc. */
74
+ reset: true; /* browser reset (default: true) */
75
+ }
76
+ ```
77
+
78
+ ---
79
+
80
+ ## ๐Ÿ’ Cherry MCP โ€” Stop AI from hallucinating class names
81
+
82
+ Cherry is a free MCP server that gives Claude Code, Cursor, and VS Code accurate real-time Frutjam docs โ€” no more invented class names.
83
+
84
+ ```json
85
+ {
86
+ "mcpServers": {
87
+ "frutjam": {
88
+ "command": "npx",
89
+ "args": ["-y", "frutjam-cherry"]
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ [**Get Cherry โ†’**](https://frutjam.com/products/cherry)
96
+
97
+ ---
98
+
99
+ ## Links
100
+
101
+ - [Full documentation](https://frutjam.com/docs)
102
+ - [All 65+ components](https://frutjam.com/components)
103
+ - [UI Blocks](https://frutjam.com/blocks)
104
+ - [Themes](https://frutjam.com/docs/themes)
105
+ - [GitHub](https://github.com/nezanuha/frutjam)
106
+ - [Discord](https://discord.gg/FvjytjQSSZ)
107
+
108
+ ## License
109
+
110
+ MIT