Skip to content

Commit

Permalink
Merge pull request #55 from SySagar/docs
Browse files Browse the repository at this point in the history
docs(button): basic button variants and sizes
  • Loading branch information
SySagar authored Sep 20, 2024
2 parents a2727c6 + a870ebe commit 4cc8849
Show file tree
Hide file tree
Showing 11 changed files with 216 additions and 16 deletions.
2 changes: 1 addition & 1 deletion apps/docs/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const inter = Inter({

export default function Layout({ children }: { children: ReactNode }) {
return (
<html lang="en" className={inter.className} suppressHydrationWarning>
<html lang='en' className={inter.className} suppressHydrationWarning>
<body>
<RootProvider>{children}</RootProvider>
</body>
Expand Down
14 changes: 14 additions & 0 deletions apps/docs/app/ui/ComponenentWrapper.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
'use client';
import React from 'react';

export default function ComponenentWrapper({
children,
}: {
children: React.ReactNode;
}) {
return (
<div className='flex flex-row items-center justify-center h-[300px] gap-20'>
{children}
</div>
);
}
4 changes: 4 additions & 0 deletions apps/docs/app/ui/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
'use client';
import '../global.css';

export * from '@groovy-box/ui';
164 changes: 162 additions & 2 deletions apps/docs/content/docs/(components)/button.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,166 @@
---
title: Button
description: A basic BUtton
description: Displays a basic button or a component that looks like a button.
---

button stuff
## Default

import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
import { Button } from '@/app/ui';
import ComponenentWrapper from '@/app/ui/ComponenentWrapper';

<Tabs items={['Preview', 'Code']}>
<Tab value='Preview'>
<ComponenentWrapper>
<Button variant="default">default</Button>
</ComponenentWrapper>

</Tab>
<Tab value='Code'>

```tsx
import { Button } from "@groovy-box/ui"

export function ButtonDefault() {
return <Button variant='default'>default</Button>;
}

````

</Tab>
</Tabs>

## Secondary
<Tabs items={['Preview', 'Code']}>
<Tab value='Preview'>
<ComponenentWrapper>
<Button variant="secondary">secondary</Button>
</ComponenentWrapper>

</Tab>
<Tab value='Code'>

```tsx
import { Button } from "@groovy-box/ui"

export function ButtonSecondary() {
return <Button variant='secondary'>secondary</Button>;
}

````

</Tab>

</Tabs>

## Destructive

<Tabs items={['Preview', 'Code']}>
<Tab value='Preview'>
<ComponenentWrapper>
<Button variant="destructive">destructive</Button>
</ComponenentWrapper>

</Tab>
<Tab value='Code'>

```tsx
import { Button } from '@groovy-box/ui';

export function ButtonDestructive() {
return <Button variant='destructive'>destructive</Button>;
}
```

</Tab>

</Tabs>

## Outline

<Tabs items={['Preview', 'Code']}>
<Tab value='Preview'>
<ComponenentWrapper>
<Button variant="outline">outline</Button>
</ComponenentWrapper>

</Tab>
<Tab value='Code'>

```tsx
import { Button } from '@groovy-box/ui';

export function ButtonOutline() {
return <Button variant='outline'>outline</Button>;
}
```

</Tab>

</Tabs>

## Link

<Tabs items={['Preview', 'Code']}>
<Tab value='Preview'>
<ComponenentWrapper>
<Button variant="link">Link</Button>
</ComponenentWrapper>

</Tab>
<Tab value='Code'>

```tsx
import { Button } from '@groovy-box/ui';

export function ButtonLink() {
return <Button variant='link'>Link</Button>;
}
```

</Tab>

</Tabs>

## Sizes

<Tabs items={['Preview', 'Code']}>
<Tab value='Preview'>
<ComponenentWrapper>
<div>
<Button size="sm">Small</Button>
</div>
<div>
<Button size="default">Medium</Button>
</div>
<div>
<Button size="lg">Large</Button>
</div>
</ComponenentWrapper>

</Tab>
<Tab value='Code'>

```tsx
import { Button } from '@groovy-box/ui';

export function ButtonLink() {
return (
<div>
<div>
<Button size='sm'>Small</Button>
</div>
<div>
<Button size='default'>Medium</Button>
</div>
<div>
<Button size='lg'>Large</Button>
</div>
</div>
);
}
```

</Tab>

</Tabs>
3 changes: 2 additions & 1 deletion apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-icons": "^5.3.0",
"react-syntax-highlighter": "^15.5.0"
"react-syntax-highlighter": "^15.5.0",
"@groovy-box/ui": "*"
},
"devDependencies": {
"@types/mdx": "^2.0.13",
Expand Down
22 changes: 12 additions & 10 deletions apps/ui/lib/components/Button/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,25 @@ import { cva, type VariantProps } from 'class-variance-authority';
import { cn } from '@utils/utils';

const buttonVariants = cva(
'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
'grv-inline-flex grv-items-center grv-justify-center grv-whitespace-nowrap grv-rounded-md grv-text-sm grv-font-medium grv-ring-offset-background grv-transition-colors focus-visible:grv-outline-none focus-visible:grv-ring-2 focus-visible:grv-ring-ring focus-visible:grv-ring-offset-2 disabled:grv-pointer-events-none disabled:grv-opacity-50',
{
variants: {
variant: {
default: 'bg-primary-700 text-primaryText hover:bg-primary-700/90',
destructive: 'bg-error-900 text-primaryText hover:bg-error-900/90',
default:
'grv-bg-primary-700 grv-text-primaryText hover:grv-bg-primary-700/90 grv-border-none',
destructive:
'grv-bg-error-900 grv-text-primaryText hover:grv-bg-error-900/90 grv-border-none grv-outline-0 grv-shadow-none',
outline:
'border border-input hover:bg-accent hover:text-accent-foreground',
' grv-border-none grv-bg-primary-100/0 hover:grv-bg-primary-700/20 hover:grv-text-accent-foreground grv-outline grv-font-medium grv-outline-1 grv-shadow-none',
secondary:
'bg-secondary-700 text-primaryText hover:bg-secondary-700/80',
link: 'text-primary-500 underline-offset-4 hover:underline',
'grv-bg-secondary-700 grv-text-primaryText hover:grv-bg-secondary-700/80 grv-border-none grv-outline-0 grv-shadow-none',
link: 'grv-text-primary-500 grv-underline-offset-4 hover:grv-underline grv-bg-primary-100/0 grv-font-medium grv-border-none hover:grv-cursor-pointer',
},
size: {
default: 'h-10 px-4 py-2',
sm: 'h-9 rounded-md px-3',
lg: 'h-11 rounded-md px-8',
icon: 'h-10 w-10',
default: 'grv-h-10 grv-px-4 grv-py-2',
sm: 'grv-h-9 grv-rounded-md grv-px-3',
lg: 'grv-h-11 grv-rounded-md grv-px-8',
icon: 'grv-h-10 grv-w-10',
},
},
defaultVariants: {
Expand Down
2 changes: 2 additions & 0 deletions apps/ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
"class-variance-authority": "^0.7.0",
"classnames": "^2.5.1",
"lucide-react": "^0.377.0",
"postcss-prefix-selector": "^1.16.1",
"tailwind-merge": "^2.3.0",
"tsconfig-paths-webpack-plugin": "^4.1.0"
},
Expand Down Expand Up @@ -90,6 +91,7 @@
"eslint-config-react-app": "^7.0.1",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-react": "^7.33.2",
"fumadocs-ui": "^13.4.10",
"husky": "^8.0.0",
"identity-obj-proxy": "^3.0.0",
"jest": "^29.7.0",
Expand Down
4 changes: 4 additions & 0 deletions apps/ui/tailwind.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {

/** @type {import('tailwindcss').Config} */
module.exports = {
prefix: 'grv-',
content: [
'./lib/**/*.{html,ts,tsx,js,jsx}',
'./stories/**/*.{ts,tsx,js,jsx}',
Expand All @@ -23,4 +24,7 @@ module.exports = {
addUtilities(customTypographyClasses);
}),
],
corePlugins: {
preflight: false, // <== disable this!
},
} satisfies Config;
14 changes: 13 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"ui:dev": "turbo dev --filter @groovy-box/ui",
"docs:dev": "turbo dev --filter @groovy-box/docs",
"build": "turbo build",
"vercel-build": "turbo run build --filter @groovy-box/ui && cd apps/docs && npm run build",
"ui:build": "turbo build --filter @groovy-box/ui",
"ui:coverage": "turbo test-cov --filter @groovy-box/ui",
"check:up-to-date-types": "tcm --listDifferent ./apps/ui/lib",
Expand Down
2 changes: 1 addition & 1 deletion turbo.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"tasks": {
"dev": {},
"build": {
"outputs": [".next/**", "!.next/cache/**"]
"outputs": [".next/**", "!.next/cache/**", "dist/**"]
},
"lint": {},
"test-cov": {},
Expand Down

0 comments on commit 4cc8849

Please sign in to comment.