@b3-crow/ui-kit 0.0.23 → 0.0.25
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 +83 -35
- package/dist/components/AnimatedBackground.d.ts +9 -0
- package/dist/components/AnimatedBackground.d.ts.map +1 -0
- package/dist/components/AnimatedBackground.js +43 -0
- package/dist/components/AnimatedBackground.js.map +1 -0
- package/dist/components/Button.d.ts +15 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +26 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Card.d.ts +22 -0
- package/dist/components/Card.d.ts.map +1 -0
- package/dist/components/Card.js +50 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Globe.d.ts +14 -0
- package/dist/components/Globe.d.ts.map +1 -0
- package/dist/components/Globe.js +67 -0
- package/dist/components/Globe.js.map +1 -0
- package/dist/components/GradientBackground.d.ts +16 -0
- package/dist/components/GradientBackground.d.ts.map +1 -0
- package/dist/components/GradientBackground.js +18 -0
- package/dist/components/GradientBackground.js.map +1 -0
- package/dist/components/HeroText.d.ts +6 -0
- package/dist/components/HeroText.d.ts.map +1 -0
- package/dist/components/HeroText.js +22 -0
- package/dist/components/HeroText.js.map +1 -0
- package/dist/components/InputField.d.ts +25 -0
- package/dist/components/InputField.d.ts.map +1 -0
- package/dist/components/InputField.js +73 -0
- package/dist/components/InputField.js.map +1 -0
- package/dist/components/Logo.d.ts +6 -0
- package/dist/components/Logo.d.ts.map +1 -0
- package/dist/components/Logo.js +7 -0
- package/dist/components/Logo.js.map +1 -0
- package/dist/components/SectionLabel.d.ts +7 -0
- package/dist/components/SectionLabel.d.ts.map +1 -0
- package/dist/components/SectionLabel.js +11 -0
- package/dist/components/SectionLabel.js.map +1 -0
- package/dist/components/Subtitle.d.ts +6 -0
- package/dist/components/Subtitle.d.ts.map +1 -0
- package/dist/components/Subtitle.js +18 -0
- package/dist/components/Subtitle.js.map +1 -0
- package/dist/components/TypewriterText.d.ts +5 -0
- package/dist/components/TypewriterText.d.ts.map +1 -0
- package/dist/components/TypewriterText.js +57 -0
- package/dist/components/TypewriterText.js.map +1 -0
- package/dist/components/index.d.ts +12 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +12 -0
- package/dist/components/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/styles.css +2 -0
- package/docs/components.md +265 -0
- package/docs/development.md +291 -0
- package/docs/examples.md +333 -0
- package/docs/setup.md +73 -0
- package/package.json +9 -4
- package/.github/dependabot.yml +0 -6
- package/.github/workflows/publish.yml +0 -75
- package/.github/workflows/template-sync.yml +0 -31
- package/.husky/commit-msg +0 -1
- package/.husky/pre-commit +0 -1
- package/.prettierrc +0 -13
- package/bun.lock +0 -1042
- package/commitlint.config.cjs +0 -4
- package/eslint.config.mts +0 -7
- package/lint-staged +0 -0
- package/postcss.config.mjs +0 -5
- package/src/components/coming-soon/AnimatedBackground.tsx +0 -71
- package/src/components/coming-soon/HeroText.tsx +0 -40
- package/src/components/coming-soon/Logo.tsx +0 -27
- package/src/components/coming-soon/Subtitle.tsx +0 -37
- package/src/components/coming-soon/TypewriterText.tsx +0 -89
- package/src/components/coming-soon/index.ts +0 -5
- package/src/index.ts +0 -2
- package/tsconfig.json +0 -23
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# Development Guide
|
|
2
|
+
|
|
3
|
+
## Getting Started
|
|
4
|
+
|
|
5
|
+
### Prerequisites
|
|
6
|
+
|
|
7
|
+
- [Bun](https://bun.sh) v1.3.3 or higher
|
|
8
|
+
- Node.js v18 or higher (for compatibility)
|
|
9
|
+
- Git
|
|
10
|
+
|
|
11
|
+
### Installation
|
|
12
|
+
|
|
13
|
+
Clone the repository and install dependencies:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
git clone https://github.com/CROW-B3/ui-kit.git
|
|
17
|
+
cd ui-kit
|
|
18
|
+
bun install
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Project Structure
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
ui-kit/
|
|
25
|
+
├── src/
|
|
26
|
+
│ ├── components/ # All UI components
|
|
27
|
+
│ ├── lib/ # Utility functions
|
|
28
|
+
│ ├── index.ts # Main exports
|
|
29
|
+
│ └── styles.css # Global styles
|
|
30
|
+
├── dist/ # Compiled output
|
|
31
|
+
├── docs/ # Documentation
|
|
32
|
+
├── package.json
|
|
33
|
+
├── tsconfig.json
|
|
34
|
+
└── README.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Development Workflow
|
|
38
|
+
|
|
39
|
+
### Building
|
|
40
|
+
|
|
41
|
+
Build the library for production:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
bun run build
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Watch mode for development:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
bun run build:watch
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Linting
|
|
54
|
+
|
|
55
|
+
Run ESLint to check for code issues:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
bun run lint
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Auto-fix linting issues:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
bun run lint:fix
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Formatting
|
|
68
|
+
|
|
69
|
+
Format code with Prettier:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
bun run format
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Pre-commit Hooks
|
|
76
|
+
|
|
77
|
+
The project uses Husky for Git hooks:
|
|
78
|
+
|
|
79
|
+
- **Pre-commit**: Runs lint-staged to lint and format changed files
|
|
80
|
+
- **Commit-msg**: Validates commit messages using conventional commits
|
|
81
|
+
|
|
82
|
+
Hooks are automatically installed after running `bun install`.
|
|
83
|
+
|
|
84
|
+
## Code Standards
|
|
85
|
+
|
|
86
|
+
### TypeScript
|
|
87
|
+
|
|
88
|
+
- All components must be fully typed
|
|
89
|
+
- Export component prop types
|
|
90
|
+
- Use strict TypeScript configuration
|
|
91
|
+
- No `any` types unless absolutely necessary
|
|
92
|
+
|
|
93
|
+
### Styling
|
|
94
|
+
|
|
95
|
+
- Use Tailwind CSS utility classes
|
|
96
|
+
- Follow dark theme design system
|
|
97
|
+
- Use consistent spacing and sizing
|
|
98
|
+
- Prefer composition over configuration
|
|
99
|
+
|
|
100
|
+
### Component Structure
|
|
101
|
+
|
|
102
|
+
```tsx
|
|
103
|
+
import type { ComponentProps } from 'react';
|
|
104
|
+
|
|
105
|
+
export interface YourComponentProps {
|
|
106
|
+
// Props interface
|
|
107
|
+
required: string;
|
|
108
|
+
optional?: number;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export function YourComponent({ required, optional }: YourComponentProps) {
|
|
112
|
+
// Component implementation
|
|
113
|
+
return <div>{required}</div>;
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Commit Messages
|
|
118
|
+
|
|
119
|
+
Follow [Conventional Commits](https://www.conventionalcommits.org/):
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
feat: add new component
|
|
123
|
+
fix: resolve animation bug
|
|
124
|
+
docs: update README
|
|
125
|
+
chore: bump dependencies
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Types:
|
|
129
|
+
|
|
130
|
+
- `feat`: New feature
|
|
131
|
+
- `fix`: Bug fix
|
|
132
|
+
- `docs`: Documentation changes
|
|
133
|
+
- `style`: Code style changes (formatting)
|
|
134
|
+
- `refactor`: Code refactoring
|
|
135
|
+
- `test`: Adding/updating tests
|
|
136
|
+
- `chore`: Maintenance tasks
|
|
137
|
+
|
|
138
|
+
## Testing
|
|
139
|
+
|
|
140
|
+
### Manual Testing
|
|
141
|
+
|
|
142
|
+
Link the package locally in a test project:
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"dependencies": {
|
|
147
|
+
"@b3-crow/ui-kit": "file:../ui-kit"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
For Next.js projects, add to `next.config.ts`:
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
const nextConfig = {
|
|
156
|
+
transpilePackages: ['@b3-crow/ui-kit'],
|
|
157
|
+
};
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Visual Testing
|
|
161
|
+
|
|
162
|
+
Test components in different scenarios:
|
|
163
|
+
|
|
164
|
+
- Dark backgrounds
|
|
165
|
+
- Light backgrounds
|
|
166
|
+
- Different viewport sizes
|
|
167
|
+
- Animation triggers
|
|
168
|
+
- Scroll behavior
|
|
169
|
+
|
|
170
|
+
## Publishing
|
|
171
|
+
|
|
172
|
+
### Version Bump
|
|
173
|
+
|
|
174
|
+
Update version in `package.json`:
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"version": "0.0.25"
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Build and Publish
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# Build the library
|
|
186
|
+
bun run build
|
|
187
|
+
|
|
188
|
+
# Publish to npm
|
|
189
|
+
npm publish
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Automated Publishing
|
|
193
|
+
|
|
194
|
+
The project uses GitHub Actions for automated publishing:
|
|
195
|
+
|
|
196
|
+
- Pushes to `main` trigger automatic version bumps
|
|
197
|
+
- Releases are created automatically
|
|
198
|
+
- Package is published to npm registry
|
|
199
|
+
|
|
200
|
+
## Contributing
|
|
201
|
+
|
|
202
|
+
### Pull Request Process
|
|
203
|
+
|
|
204
|
+
1. Fork the repository
|
|
205
|
+
2. Create a feature branch: `git checkout -b feat/my-feature`
|
|
206
|
+
3. Make your changes
|
|
207
|
+
4. Commit using conventional commits
|
|
208
|
+
5. Push to your fork
|
|
209
|
+
6. Open a pull request
|
|
210
|
+
|
|
211
|
+
### Code Review
|
|
212
|
+
|
|
213
|
+
- All PRs require review before merging
|
|
214
|
+
- Ensure CI passes (linting, building)
|
|
215
|
+
- Update documentation if needed
|
|
216
|
+
- Add examples for new components
|
|
217
|
+
|
|
218
|
+
## File Checklist
|
|
219
|
+
|
|
220
|
+
When adding a new component:
|
|
221
|
+
|
|
222
|
+
- [ ] Create component in `src/components/`
|
|
223
|
+
- [ ] Export from `src/index.ts`
|
|
224
|
+
- [ ] Add TypeScript types
|
|
225
|
+
- [ ] Document in `docs/components.md`
|
|
226
|
+
- [ ] Add examples in `docs/examples.md`
|
|
227
|
+
- [ ] Test locally with a consumer project
|
|
228
|
+
- [ ] Update version in `package.json`
|
|
229
|
+
|
|
230
|
+
## Troubleshooting
|
|
231
|
+
|
|
232
|
+
### Build Errors
|
|
233
|
+
|
|
234
|
+
**TypeScript errors:**
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# Check TypeScript configuration
|
|
238
|
+
cat tsconfig.json
|
|
239
|
+
|
|
240
|
+
# Clean and rebuild
|
|
241
|
+
rm -rf dist
|
|
242
|
+
bun run build
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Missing dependencies:**
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
# Clean install
|
|
249
|
+
rm -rf node_modules bun.lock
|
|
250
|
+
bun install
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Import Errors
|
|
254
|
+
|
|
255
|
+
**Cannot resolve module:**
|
|
256
|
+
|
|
257
|
+
- Ensure component is exported in `src/index.ts`
|
|
258
|
+
- Check `package.json` exports field
|
|
259
|
+
- Verify build output in `dist/`
|
|
260
|
+
|
|
261
|
+
**Type errors in consumer:**
|
|
262
|
+
|
|
263
|
+
- Ensure `.d.ts` files are generated
|
|
264
|
+
- Check `types` field in `package.json`
|
|
265
|
+
- Rebuild the library
|
|
266
|
+
|
|
267
|
+
### Next.js Integration
|
|
268
|
+
|
|
269
|
+
**Module not found:**
|
|
270
|
+
|
|
271
|
+
- Add package to `transpilePackages` in `next.config.ts`
|
|
272
|
+
- Clear Next.js cache: `rm -rf .next`
|
|
273
|
+
- Reinstall dependencies
|
|
274
|
+
|
|
275
|
+
**Tailwind classes not working:**
|
|
276
|
+
|
|
277
|
+
- Ensure consumer project has Tailwind configured
|
|
278
|
+
- Check PostCSS configuration
|
|
279
|
+
- Verify Tailwind v4 is installed
|
|
280
|
+
|
|
281
|
+
## Resources
|
|
282
|
+
|
|
283
|
+
- [Bun Documentation](https://bun.sh/docs)
|
|
284
|
+
- [TypeScript Handbook](https://www.typescriptlang.org/docs/)
|
|
285
|
+
- [Tailwind CSS v4](https://tailwindcss.com/docs)
|
|
286
|
+
- [Framer Motion](https://www.framer.com/motion/)
|
|
287
|
+
- [Conventional Commits](https://www.conventionalcommits.org/)
|
|
288
|
+
|
|
289
|
+
## License
|
|
290
|
+
|
|
291
|
+
MIT License - see [LICENSE](../LICENSE) file for details.
|
package/docs/examples.md
ADDED
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
# Usage Examples
|
|
2
|
+
|
|
3
|
+
## Complete Coming Soon Page
|
|
4
|
+
|
|
5
|
+
Here's a complete example of a Coming Soon page using all hero components:
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import {
|
|
9
|
+
AnimatedBackground,
|
|
10
|
+
HeroText,
|
|
11
|
+
Logo,
|
|
12
|
+
TypewriterText,
|
|
13
|
+
Subtitle,
|
|
14
|
+
} from '@b3-crow/ui-kit';
|
|
15
|
+
|
|
16
|
+
function App() {
|
|
17
|
+
return (
|
|
18
|
+
<>
|
|
19
|
+
{/* Hero Section - must have position: relative and min-height */}
|
|
20
|
+
<section
|
|
21
|
+
style={{
|
|
22
|
+
position: 'relative',
|
|
23
|
+
minHeight: '100vh',
|
|
24
|
+
display: 'flex',
|
|
25
|
+
flexDirection: 'column',
|
|
26
|
+
justifyContent: 'center',
|
|
27
|
+
alignItems: 'center',
|
|
28
|
+
}}
|
|
29
|
+
>
|
|
30
|
+
<AnimatedBackground />
|
|
31
|
+
<Logo src="/your-logo.png" alt="Your Logo" />
|
|
32
|
+
<HeroText text="Your Brand" />
|
|
33
|
+
<TypewriterText text="COMING SOON" />
|
|
34
|
+
<Subtitle>
|
|
35
|
+
Your subtitle text here
|
|
36
|
+
<br />
|
|
37
|
+
Can be multi-line with custom formatting
|
|
38
|
+
</Subtitle>
|
|
39
|
+
</section>
|
|
40
|
+
|
|
41
|
+
{/* Other sections - add your own background */}
|
|
42
|
+
<section
|
|
43
|
+
style={{ background: 'white', padding: '4rem 2rem', minHeight: '50vh' }}
|
|
44
|
+
>
|
|
45
|
+
<h2>Your Content Here</h2>
|
|
46
|
+
<p>Additional sections will scroll normally</p>
|
|
47
|
+
</section>
|
|
48
|
+
</>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Important:** The parent container of `AnimatedBackground` must have `position: relative` to properly contain the absolutely positioned background. Use `minHeight: '100vh'` for full-screen hero sections.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Button Examples
|
|
58
|
+
|
|
59
|
+
```tsx
|
|
60
|
+
import { Button } from '@b3-crow/ui-kit'
|
|
61
|
+
|
|
62
|
+
// Outline button (default)
|
|
63
|
+
<Button variant="outline">Try Now</Button>
|
|
64
|
+
|
|
65
|
+
// Solid button
|
|
66
|
+
<Button variant="solid">Get Started</Button>
|
|
67
|
+
|
|
68
|
+
// Button as link
|
|
69
|
+
<Button href="/docs">View Docs</Button>
|
|
70
|
+
|
|
71
|
+
// Button with click handler
|
|
72
|
+
<Button onClick={() => console.log('clicked')}>Click Me</Button>
|
|
73
|
+
|
|
74
|
+
// Button without arrow
|
|
75
|
+
<Button showArrow={false}>No Arrow</Button>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Card Examples
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
import { Card, Button } from '@b3-crow/ui-kit'
|
|
84
|
+
import { FiCode, FiBook } from 'react-icons/fi'
|
|
85
|
+
|
|
86
|
+
// Feature card
|
|
87
|
+
<Card
|
|
88
|
+
title="Feature Title"
|
|
89
|
+
description="Feature description text goes here"
|
|
90
|
+
icon={<FiCode />}
|
|
91
|
+
index={0}
|
|
92
|
+
layout="feature"
|
|
93
|
+
button={<Button variant="outline">Try Now</Button>}
|
|
94
|
+
/>
|
|
95
|
+
|
|
96
|
+
// Documentation card with center alignment
|
|
97
|
+
<Card
|
|
98
|
+
title="Documentation"
|
|
99
|
+
description="Read our comprehensive guides"
|
|
100
|
+
icon={<FiBook />}
|
|
101
|
+
index={1}
|
|
102
|
+
layout="documentation"
|
|
103
|
+
contentAlign="center"
|
|
104
|
+
button={<Button href="/docs">View Docs</Button>}
|
|
105
|
+
/>
|
|
106
|
+
|
|
107
|
+
// Simple card without button
|
|
108
|
+
<Card
|
|
109
|
+
title="Simple Card"
|
|
110
|
+
description="Just text, no button needed"
|
|
111
|
+
icon={<FiCode />}
|
|
112
|
+
/>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Globe Examples
|
|
118
|
+
|
|
119
|
+
```tsx
|
|
120
|
+
import { Globe } from '@b3-crow/ui-kit'
|
|
121
|
+
import { BsGlobe2, BsDatabase } from 'react-icons/bs'
|
|
122
|
+
|
|
123
|
+
// Default globe with preset points
|
|
124
|
+
<Globe size={500} />
|
|
125
|
+
|
|
126
|
+
// Custom globe with custom data points
|
|
127
|
+
<Globe
|
|
128
|
+
size={600}
|
|
129
|
+
points={[
|
|
130
|
+
{
|
|
131
|
+
label: 'Data Source',
|
|
132
|
+
icon: <BsGlobe2 />,
|
|
133
|
+
position: { x: 50, y: 30 }
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
label: 'Database',
|
|
137
|
+
icon: <BsDatabase />,
|
|
138
|
+
position: { x: -30, y: -20 }
|
|
139
|
+
}
|
|
140
|
+
]}
|
|
141
|
+
/>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## GradientBackground Examples
|
|
147
|
+
|
|
148
|
+
```tsx
|
|
149
|
+
import { GradientBackground } from '@b3-crow/ui-kit'
|
|
150
|
+
|
|
151
|
+
// Top gradient (default)
|
|
152
|
+
<section style={{ position: 'relative' }}>
|
|
153
|
+
<GradientBackground position="top" />
|
|
154
|
+
<div>Your content here</div>
|
|
155
|
+
</section>
|
|
156
|
+
|
|
157
|
+
// Bottom gradient with custom height
|
|
158
|
+
<section style={{ position: 'relative' }}>
|
|
159
|
+
<GradientBackground position="bottom" height="50vh" />
|
|
160
|
+
<div>Your content here</div>
|
|
161
|
+
</section>
|
|
162
|
+
|
|
163
|
+
// Custom colors
|
|
164
|
+
<GradientBackground
|
|
165
|
+
position="top"
|
|
166
|
+
colors={{
|
|
167
|
+
start: 'rgba(100, 50, 150, 0.9)',
|
|
168
|
+
middle1: 'rgba(80, 40, 120, 0.7)',
|
|
169
|
+
middle2: 'rgba(60, 30, 100, 0.6)',
|
|
170
|
+
middle3: 'rgba(40, 20, 80, 0.4)',
|
|
171
|
+
}}
|
|
172
|
+
blur="200px"
|
|
173
|
+
/>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## InputField Examples
|
|
179
|
+
|
|
180
|
+
```tsx
|
|
181
|
+
import { InputField } from '@b3-crow/ui-kit'
|
|
182
|
+
import { useState } from 'react'
|
|
183
|
+
|
|
184
|
+
// Default input with submit button
|
|
185
|
+
<InputField
|
|
186
|
+
placeholder="Ask CROW Anything..."
|
|
187
|
+
onSubmit={(value) => console.log('Submitted:', value)}
|
|
188
|
+
/>
|
|
189
|
+
|
|
190
|
+
// Controlled input
|
|
191
|
+
function ControlledExample() {
|
|
192
|
+
const [inputValue, setInputValue] = useState('')
|
|
193
|
+
|
|
194
|
+
return (
|
|
195
|
+
<InputField
|
|
196
|
+
value={inputValue}
|
|
197
|
+
onChange={(value) => setInputValue(value)}
|
|
198
|
+
onSubmit={(value) => {
|
|
199
|
+
console.log('Submitted:', value)
|
|
200
|
+
setInputValue('')
|
|
201
|
+
}}
|
|
202
|
+
/>
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// Different sizes and variants
|
|
207
|
+
<InputField size="sm" variant="transparent" placeholder="Small input" />
|
|
208
|
+
<InputField size="md" variant="filled" placeholder="Medium filled" />
|
|
209
|
+
<InputField size="lg" variant="transparent" placeholder="Large input" />
|
|
210
|
+
|
|
211
|
+
// Without button
|
|
212
|
+
<InputField showButton={false} placeholder="No submit button" />
|
|
213
|
+
|
|
214
|
+
// Button on left
|
|
215
|
+
<InputField buttonPosition="left" placeholder="Button on left" />
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## SectionLabel Examples
|
|
221
|
+
|
|
222
|
+
```tsx
|
|
223
|
+
import { SectionLabel } from '@b3-crow/ui-kit'
|
|
224
|
+
|
|
225
|
+
// Animated label
|
|
226
|
+
<SectionLabel label="FEATURES" className="mb-16" />
|
|
227
|
+
|
|
228
|
+
// Static label (no animation)
|
|
229
|
+
<SectionLabel label="ABOUT" animate={false} />
|
|
230
|
+
|
|
231
|
+
// With custom styling
|
|
232
|
+
<SectionLabel label="TEAM" className="mb-8 opacity-80" />
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Full Page Example
|
|
238
|
+
|
|
239
|
+
Here's a complete landing page example using multiple components:
|
|
240
|
+
|
|
241
|
+
```tsx
|
|
242
|
+
import {
|
|
243
|
+
AnimatedBackground,
|
|
244
|
+
HeroText,
|
|
245
|
+
Logo,
|
|
246
|
+
TypewriterText,
|
|
247
|
+
Subtitle,
|
|
248
|
+
SectionLabel,
|
|
249
|
+
Card,
|
|
250
|
+
Button,
|
|
251
|
+
Globe,
|
|
252
|
+
InputField,
|
|
253
|
+
} from '@b3-crow/ui-kit';
|
|
254
|
+
import { FiCode, FiBook, FiZap } from 'react-icons/fi';
|
|
255
|
+
|
|
256
|
+
export default function LandingPage() {
|
|
257
|
+
return (
|
|
258
|
+
<div className="min-h-screen bg-black text-white">
|
|
259
|
+
{/* Hero Section */}
|
|
260
|
+
<section className="relative flex min-h-screen flex-col items-center justify-center">
|
|
261
|
+
<AnimatedBackground />
|
|
262
|
+
<Logo src="/logo.png" alt="CROW Logo" />
|
|
263
|
+
<HeroText text="CROW-B3" />
|
|
264
|
+
<TypewriterText text="COMING SOON" />
|
|
265
|
+
<Subtitle>
|
|
266
|
+
The future of development is here
|
|
267
|
+
<br />
|
|
268
|
+
Built for modern web applications
|
|
269
|
+
</Subtitle>
|
|
270
|
+
</section>
|
|
271
|
+
|
|
272
|
+
{/* Features Section */}
|
|
273
|
+
<section className="relative px-8 py-24">
|
|
274
|
+
<SectionLabel label="FEATURES" className="mb-16" />
|
|
275
|
+
<div className="mx-auto grid max-w-6xl gap-8 md:grid-cols-3">
|
|
276
|
+
<Card
|
|
277
|
+
title="Fast Development"
|
|
278
|
+
description="Build faster with pre-built components"
|
|
279
|
+
icon={<FiZap />}
|
|
280
|
+
layout="feature"
|
|
281
|
+
button={<Button variant="outline">Learn More</Button>}
|
|
282
|
+
/>
|
|
283
|
+
<Card
|
|
284
|
+
title="Documentation"
|
|
285
|
+
description="Comprehensive guides and examples"
|
|
286
|
+
icon={<FiBook />}
|
|
287
|
+
layout="feature"
|
|
288
|
+
button={<Button href="/docs">View Docs</Button>}
|
|
289
|
+
/>
|
|
290
|
+
<Card
|
|
291
|
+
title="Open Source"
|
|
292
|
+
description="Free and open source forever"
|
|
293
|
+
icon={<FiCode />}
|
|
294
|
+
layout="feature"
|
|
295
|
+
button={<Button href="/github">GitHub</Button>}
|
|
296
|
+
/>
|
|
297
|
+
</div>
|
|
298
|
+
</section>
|
|
299
|
+
|
|
300
|
+
{/* Globe Section */}
|
|
301
|
+
<section className="relative flex items-center justify-center py-24">
|
|
302
|
+
<Globe size={600} />
|
|
303
|
+
</section>
|
|
304
|
+
|
|
305
|
+
{/* CTA Section */}
|
|
306
|
+
<section className="relative px-8 py-24 text-center">
|
|
307
|
+
<h2 className="mb-8 text-4xl font-bold">Get Early Access</h2>
|
|
308
|
+
<div className="mx-auto max-w-md">
|
|
309
|
+
<InputField
|
|
310
|
+
placeholder="Enter your email..."
|
|
311
|
+
size="lg"
|
|
312
|
+
onSubmit={email => console.log('Email:', email)}
|
|
313
|
+
/>
|
|
314
|
+
</div>
|
|
315
|
+
</section>
|
|
316
|
+
</div>
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## Important Notes
|
|
324
|
+
|
|
325
|
+
1. **Scrolling Requirements**: The parent container of `AnimatedBackground` MUST have `position: relative` and a defined height (e.g., `minHeight: '100vh'`) to enable proper scrolling
|
|
326
|
+
|
|
327
|
+
2. **Tailwind CSS**: Most components use Tailwind CSS classes, ensure Tailwind is configured in your project
|
|
328
|
+
|
|
329
|
+
3. **Dark Theme**: Components are designed for dark backgrounds, using white text with opacity variants
|
|
330
|
+
|
|
331
|
+
4. **Animations**: All animated components use Framer Motion with scroll-triggered animations
|
|
332
|
+
|
|
333
|
+
5. **TypeScript**: All components are fully typed with exported TypeScript interfaces
|
package/docs/setup.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Setup Guide
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
Install the UI kit using your preferred package manager:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
bun add @b3-crow/ui-kit
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Local Development
|
|
12
|
+
|
|
13
|
+
For local development, you can link the package directly:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@b3-crow/ui-kit": "file:../ui-kit"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Peer Dependencies
|
|
24
|
+
|
|
25
|
+
Install the required peer dependencies:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
bun add react react-dom framer-motion react-icons cobe
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Required Versions
|
|
32
|
+
|
|
33
|
+
- `react`: ^19.2.0
|
|
34
|
+
- `react-dom`: ^19.2.0
|
|
35
|
+
- `framer-motion`: Latest
|
|
36
|
+
- `react-icons`: Latest
|
|
37
|
+
- `cobe`: Latest
|
|
38
|
+
|
|
39
|
+
## Tailwind CSS Configuration
|
|
40
|
+
|
|
41
|
+
Most components use Tailwind CSS classes. Ensure Tailwind v4 is configured in your project:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
bun add -D tailwindcss @tailwindcss/postcss
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### PostCSS Configuration
|
|
48
|
+
|
|
49
|
+
Create or update `postcss.config.mjs`:
|
|
50
|
+
|
|
51
|
+
```js
|
|
52
|
+
export default {
|
|
53
|
+
plugins: {
|
|
54
|
+
'@tailwindcss/postcss': {},
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Next.js Configuration
|
|
60
|
+
|
|
61
|
+
If using with Next.js and local packages, add to `next.config.ts`:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
const nextConfig = {
|
|
65
|
+
transpilePackages: ['@b3-crow/ui-kit'],
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export default nextConfig;
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Dark Theme
|
|
72
|
+
|
|
73
|
+
All components are designed for dark backgrounds with white text and opacity variants. Ensure your app has a dark theme configured.
|