# Action Button URL: /lynx/components/action-button Source: https://github.com/daangn/seed-design/blob/dev/docs/content/lynx/components/action-button.mdx 명확한 액션을 쉽게 수행할 수 있도록 돕는 기본 인터랙션 컴포넌트입니다. Lynx Engine 최소 버전: 3.6 사용 가능 버전: @seed-design/lynx-react@0.1.0, @seed-design/lynx-css@0.1.0 ## Installation - npm: npm install @seed-design/lynx-react @seed-design/lynx-css - pnpm: pnpm add @seed-design/lynx-react @seed-design/lynx-css - yarn: yarn add @seed-design/lynx-react @seed-design/lynx-css - bun: bun add @seed-design/lynx-react @seed-design/lynx-css Lynx `ActionButton`은 별도 `ui:action-button` snippet 없이 `@seed-design/lynx-react` 패키지에서 직접 제공합니다. ## Usage ## Preview ```tsx import "./styles"; import { ActionButton, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( 라벨 ); } ``` ## Props ## Examples ### Brand Solid ```tsx import "./styles"; import { ActionButton, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( 라벨 ); } ``` ### Neutral Solid ```tsx import "./styles"; import { ActionButton, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( 라벨 ); } ``` ### Neutral Weak ```tsx import "./styles"; import { ActionButton, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( 라벨 ); } ``` ### Critical Solid ```tsx import "./styles"; import { ActionButton, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( 라벨 ); } ``` ### Brand Outline ```tsx import "./styles"; import { ActionButton, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( 라벨 ); } ``` ### Neutral Outline ```tsx import "./styles"; import { ActionButton, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( 라벨 ); } ``` ### Ghost Lynx에서는 기본 Ghost 스타일을 지원합니다. 웹의 `color`, `fontWeight` 사용자 지정은 지원하지 않습니다. ```tsx import "./styles"; import IconTagFill from "@karrotmarket/lynx-monochrome-icon/IconTagFill"; import { ActionButton, PrefixIcon, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( } /> Default (fg.neutral) ); } ``` ### Icon Only ```tsx import "./styles"; import IconPlusFill from "@karrotmarket/lynx-monochrome-icon/IconPlusFill"; import { ActionButton, Icon, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( } /> ); } ``` 문서 미리보기에서는 아이콘 색상이 적용되지 않아요. 아이콘의 실제 색상은 QR 코드 탭에서 Lynx Explorer를 실행해 확인할 수 있어요. ### Prefix Icon ```tsx import "./styles"; import IconPlusFill from "@karrotmarket/lynx-monochrome-icon/IconPlusFill"; import { ActionButton, PrefixIcon, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( } /> 라벨 ); } ``` 문서 미리보기에서는 아이콘 색상이 적용되지 않아요. 아이콘의 실제 색상은 QR 코드 탭에서 Lynx Explorer를 실행해 확인할 수 있어요. ### Suffix Icon ```tsx import "./styles"; import IconChevronRightFill from "@karrotmarket/lynx-monochrome-icon/IconChevronRightFill"; import { ActionButton, SuffixIcon, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( 라벨 } /> ); } ``` 문서 미리보기에서는 아이콘 색상이 적용되지 않아요. 아이콘의 실제 색상은 QR 코드 탭에서 Lynx Explorer를 실행해 확인할 수 있어요. ### Disabled ```tsx import "./styles"; import { ActionButton, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( 라벨 ); } ``` ### Loading ```tsx import "./styles"; import { useState } from "@lynx-js/react"; import { ActionButton, useSeedClassName } from "@seed-design/lynx-react"; export default function Example() { const seedClassName = useSeedClassName({ colorMode: "system" }); const [loading, setLoading] = useState(false); function handleTap() { "background only"; setLoading(true); setTimeout(() => setLoading(false), 2000); } return ( 시간이 걸리는 액션 ); } ``` ## 웹 버전과의 차이 Lynx `ActionButton`은 React `ActionButton`과 다음과 같은 차이가 있습니다. - **이벤트 핸들링**: `onClick` 대신 `bindtap`을 사용합니다. - **렌더링 요소**: HTML `