一键导入
groww-button
Button component with variants, sizes, loading states, and icon support. Use when creating clickable actions, forms, or navigation buttons.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Button component with variants, sizes, loading states, and icon support. Use when creating clickable actions, forms, or navigation buttons.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Accordion component with collapsible sections. Use for FAQs, nested content, or expandable details sections.
Calendar component for date and month selection. Use when building date pickers, scheduling interfaces, or date range selectors.
Carousel component for image/content sliders with navigation controls. Use for image galleries, hero sections, or content that scrolls horizontally.
Checkbox component for boolean or multi-select inputs. Use when building forms with boolean toggles or multiple selection lists.
Dropdown menu component with trigger and content pattern. Use when building selectable menus, action menus, or nested navigation.
Icon-only button component for actions. Use for toolbars, navigation bars, or compact action buttons without text.
| name | groww-button |
| description | Button component with variants, sizes, loading states, and icon support. Use when creating clickable actions, forms, or navigation buttons. |
import Button from '@groww-tech/ui-toolkit/dist/esm/components/atoms/Button';
// or
import { Button } from '@groww-tech/ui-toolkit';
interface ButtonProps {
buttonText: string; // Button label (required)
variant?: 'primary' | 'secondary' | 'tertiary' | 'negative'; // Button style variant
size?: 'small' | 'medium' | 'large'; // Button size
isLoading?: boolean; // Shows loading spinner
disabled?: boolean; // Disables the button
fullWidth?: boolean; // Full width button
leadingIcon?: React.ReactNode; // Icon before text
trailingIcon?: React.ReactNode; // Icon after text
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
type?: 'button' | 'submit' | 'reset';
className?: string;
dataTestId?: string;
}
primary: Default action button (use for main CTA)secondary: Secondary action (use for less important actions)tertiary: Minimal styling (use for tertiary actions)negative: Destructive action (use for delete/cancel actions)small: Compact buttons (32px height)medium: Default (40px height)large: Prominent actions (48px height)<Button
buttonText="Submit"
onClick={() => console.log('clicked')}
/>
<Button
buttonText="Save"
isLoading={true}
disabled={true}
/>
import { IconName } from '@groww-tech/icon-store';
<Button
buttonText="Add Item"
leadingIcon={<IconName />}
/>
<Button
buttonText="Continue"
fullWidth={true}
/>
<a> tags or a router Link component insteadtype attribute (default: 'button')aria-disabled set appropriately