@mtec-solutions-org/design-system
Version:
A React Native Web design system library with theme and components
153 lines (112 loc) • 2.99 kB
Markdown
# mTech Design System
A React Native Web design system library built with TypeScript, Expo, and Dripsy.
## Features
- 🎨 **Consistent Design Language** - Unified theme and component library
- 📱 **React Native Web** - Works on both web and mobile platforms
- 🎭 **Dripsy Integration** - Styled system with theme-aware components
- 📚 **Storybook** - Interactive component documentation
- 🔧 **TypeScript** - Full type safety and IntelliSense support
- 📦 **NPM Ready** - Easy to install and use in other projects
## Installation
```bash
npm install @mtech/design-system
# or
yarn add @mtech/design-system
```
## Quick Start
### 1. Wrap your app with DripsyProvider
```tsx
import React from 'react'
import { DripsyThemeProvider, theme } from '@mtech/design-system'
import { YourApp } from './YourApp'
export default function App() {
return (
<DripsyThemeProvider theme={theme}>
<YourApp />
</DripsyThemeProvider>
)
}
```
### 2. Use components
```tsx
import React from 'react'
import { Button } from '@mtech/design-system'
export function YourComponent() {
return (
<Button
variant="primary"
size="md"
onPress={() => console.log('Button pressed!')}
>
Click me!
</Button>
)
}
```
## Components
### Button
A versatile button component with multiple variants and sizes.
**Props:**
- `variant`: 'primary' | 'secondary' | 'outline' | 'ghost'
- `size`: 'sm' | 'md' | 'lg'
- `disabled`: boolean
- `loading`: boolean
- `fullWidth`: boolean
- `onPress`: () => void
**Example:**
```tsx
<Button variant="primary" size="lg" onPress={handlePress}>
Primary Button
</Button>
```
## Theme
The design system includes a comprehensive theme with:
- **Colors**: Primary, secondary, success, warning, error, and neutral colors
- **Typography**: Font sizes, weights, and line heights
- **Spacing**: Consistent spacing scale
- **Border Radius**: Predefined radius values
- **Shadows**: Elevation system
### Using the theme
```tsx
import { theme } from '@mtech/design-system'
// Access theme values
const primaryColor = theme.colors.primary
const mediumSpacing = theme.space[4]
```
## Development
### Prerequisites
- Node.js 16+
- Yarn
### Setup
```bash
# Clone the repository
git clone <repository-url>
cd design-system
# Install dependencies
yarn install
# Build the library
yarn build
# Start Storybook
yarn storybook
```
### Scripts
- `yarn build` - Build the library for production
- `yarn dev` - Build in watch mode
- `yarn storybook` - Start Storybook development server
- `yarn build-storybook` - Build Storybook for production
- `yarn lint` - Run linter
- `yarn format` - Format code
## Storybook
View the interactive component documentation:
```bash
yarn storybook
```
This will start Storybook on `http://localhost:6006`
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests and stories for new components
5. Submit a pull request
## License
MIT