@neynar/ui 0.5.0 → 1.0.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/README.md CHANGED
@@ -14,13 +14,18 @@
14
14
 
15
15
  ## What is this? 🤔
16
16
 
17
- @neynar/ui is a full-featured React component library—the same components that power Neynar App Studio and our suite of developer tools.
17
+ @neynar/ui is a full-featured React component library—the same components that power Neynar Studio and our suite of developer tools.
18
18
 
19
- **One package. 50+ components. Zero configuration.**
19
+ **One package. 50+ components. Tailwind CSS v4 powered.**
20
+
21
+ ```css
22
+ /* src/index.css */
23
+ @import "@neynar/ui/styles";
24
+ @import "@neynar/ui/themes/purple-dawn";
25
+ ```
20
26
 
21
27
  ```tsx
22
- import "@neynar/ui/styles";
23
- import "@neynar/ui/themes/purple-dawn";
28
+ import "./index.css";
24
29
  import { Button } from "@neynar/ui/button";
25
30
  import { Card } from "@neynar/ui/card";
26
31
  import { Alert } from "@neynar/ui/alert";
@@ -41,7 +46,7 @@ export default function App() {
41
46
  |---|---|
42
47
  | **Built for AI** | Designed for AI coding assistants—sensible defaults, clear APIs, zero config. LLMs love it. |
43
48
  | **Modern Stack** | shadcn/ui patterns on Base UI primitives, Tailwind CSS v4, OKLCH colors, TypeScript-first. |
44
- | **Production-Ready** | Battle-tested in Neynar App Studio and used by developers building on Farcaster. |
49
+ | **Production-Ready** | Battle-tested in Neynar Studio and used by developers building on Farcaster. |
45
50
  | **RSC-Ready** | `"use client"` directives baked in. Use interactive components from Server Components—no wrapping needed. |
46
51
  | **Fully Accessible** | WCAG 2.1 AA compliant with keyboard navigation and screen reader support. |
47
52
  | **Themes** | Ships with Purple Dawn and First Light themes. Easy to customize or create your own with CSS variables. |
@@ -61,6 +66,33 @@ pnpm add @neynar/ui
61
66
  yarn add @neynar/ui
62
67
  ```
63
68
 
69
+ ### Tailwind CSS v4 Setup (Required)
70
+
71
+ This package requires Tailwind CSS v4. The exported styles use `@import "tailwindcss"`.
72
+
73
+ **Vite:**
74
+
75
+ ```bash
76
+ npm install tailwindcss @tailwindcss/vite
77
+ ```
78
+
79
+ ```ts
80
+ // vite.config.ts
81
+ import tailwindcss from "@tailwindcss/vite";
82
+ export default defineConfig({ plugins: [react(), tailwindcss()] });
83
+ ```
84
+
85
+ **Next.js:**
86
+
87
+ ```bash
88
+ npm install tailwindcss @tailwindcss/postcss
89
+ ```
90
+
91
+ ```js
92
+ // postcss.config.js
93
+ export default { plugins: { "@tailwindcss/postcss": {} } };
94
+ ```
95
+
64
96
  ---
65
97
 
66
98
  ## What's Included 🎁
@@ -133,10 +165,10 @@ import { useMobile } from "@neynar/ui/use-mobile";
133
165
 
134
166
  ## Setup & Customization 🎨
135
167
 
136
- Create a CSS file with your styles and theme, then import it in your app's entry point (e.g., `layout.tsx` or `main.tsx`):
168
+ Create a CSS file with your styles and theme:
137
169
 
138
170
  ```css
139
- /* app/globals.css */
171
+ /* app/globals.css or src/index.css */
140
172
  @import "@neynar/ui/styles";
141
173
  @import "@neynar/ui/themes/purple-dawn";
142
174
 
@@ -150,6 +182,15 @@ Create a CSS file with your styles and theme, then import it in your app's entry
150
182
  }
151
183
  ```
152
184
 
185
+ Then import the CSS file in your app entry:
186
+
187
+ ```tsx
188
+ // main.tsx (Vite) or layout.tsx (Next.js)
189
+ import "./globals.css";
190
+ ```
191
+
192
+ **Note:** Styles must be imported via CSS `@import`, not JS imports. The CSS files use `@import "tailwindcss"` which requires Tailwind processing.
193
+
153
194
  See the [Theming Guide](./docs/theming/index.md) for the full list of customizable tokens.
154
195
 
155
196
  ### Color Mode
@@ -228,7 +269,7 @@ LLM-optimized documentation for AI coding assistants:
228
269
  - [LLM Documentation Guide](./docs/llm-documentation.md) — How to use our AI-optimized docs
229
270
  - [llms.txt](./llms.txt) — Compact overview for quick context
230
271
  - [llms-full.txt](./llms-full.txt) — Complete documentation (~16k lines)
231
- - [.llm/](./.llm/) — Per-component markdown docs
272
+ - [llm/](./llm/) — Per-component markdown docs
232
273
 
233
274
  ---
234
275
 
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@neynar/ui",
3
- "version": "0.5.0",
3
+ "version": "1.0.1",
4
4
  "license": "MIT",
5
5
  "author": "Neynar Inc.",
6
- "description": "React UI component library built on Base UI and Tailwind CSS",
6
+ "description": "AI-first React component library for coding agents. LLM-optimized docs, sensible defaults, zero config. Built on shadcn patterns, Base UI, and Tailwind CSS v4.",
7
7
  "keywords": [
8
8
  "react",
9
9
  "ui",
@@ -314,7 +314,8 @@
314
314
  "react": "^19.0.0",
315
315
  "react-day-picker": "^9.0.0",
316
316
  "react-dom": "^19.0.0",
317
- "recharts": "^2.15.0"
317
+ "recharts": "^2.15.0",
318
+ "tailwindcss": "^4.0.0"
318
319
  },
319
320
  "peerDependenciesMeta": {
320
321
  "date-fns": {
@@ -1,4 +1,3 @@
1
- import { action } from "@storybook/addon-actions";
2
1
  import type { Meta, StoryObj } from "@storybook/react";
3
2
  import {
4
3
  BarChart3Icon,
@@ -522,15 +521,15 @@ export const Interactive: Story = {
522
521
  <CommandList>
523
522
  <CommandEmpty>No results found.</CommandEmpty>
524
523
  <CommandGroup heading="Suggestions">
525
- <CommandItem onSelect={action("onSelect: calendar")}>
524
+ <CommandItem>
526
525
  <CalendarIcon />
527
526
  Calendar
528
527
  </CommandItem>
529
- <CommandItem onSelect={action("onSelect: search-emoji")}>
528
+ <CommandItem>
530
529
  <SmileIcon />
531
530
  Search Emoji
532
531
  </CommandItem>
533
- <CommandItem onSelect={action("onSelect: documents")}>
532
+ <CommandItem>
534
533
  <FileTextIcon />
535
534
  Documents
536
535
  </CommandItem>