# Contextual Floating Button
URL: /react/components/contextual-floating-button
Source: https://github.com/daangn/seed-design/blob/dev/docs/content/react/components/contextual-floating-button.mdx
화면 위에 떠 있으며 특정 상황에서만 나타나는 보조적인 동작을 위한 버튼입니다.
사용 가능 버전: @seed-design/react@0.0.30, @seed-design/css@0.0.30
## Preview
```tsx
import { IconBellFill } from "@karrotmarket/react-monochrome-icon";
import { PrefixIcon } from "@seed-design/react";
import { ContextualFloatingButton } from "seed-design/ui/contextual-floating-button";
export default function ContextualFloatingButtonPreview() {
return (
} />
알림 설정
);
}
```
## Installation
- npm: npx @seed-design/cli@latest add ui:contextual-floating-button
- pnpm: pnpm dlx @seed-design/cli@latest add ui:contextual-floating-button
- yarn: yarn dlx @seed-design/cli@latest add ui:contextual-floating-button
- bun: bun x @seed-design/cli@latest add ui:contextual-floating-button
## Props
## Examples
### Float Composition
Contextual Floating Button은 `` 컴포넌트와 함께 사용하면 편리합니다.
```tsx
import { IconBellFill } from "@karrotmarket/react-monochrome-icon";
import { Box, Float, PrefixIcon } from "@seed-design/react";
import { ContextualFloatingButton } from "seed-design/ui/contextual-floating-button";
export default function ContextualFloatingButtonFloatComposition() {
return (
} />
알림 설정
);
}
```
### Solid Variant
```tsx
import { IconPlusLine } from "@karrotmarket/react-monochrome-icon";
import { PrefixIcon } from "@seed-design/react";
import { ContextualFloatingButton } from "seed-design/ui/contextual-floating-button";
export default function ContextualFloatingButtonSolid() {
return (
} />
Solid Variant
);
}
```
### Layer Variant
```tsx
import { IconPlusLine } from "@karrotmarket/react-monochrome-icon";
import { PrefixIcon } from "@seed-design/react";
import { ContextualFloatingButton } from "seed-design/ui/contextual-floating-button";
export default function ContextualFloatingButtonLayer() {
return (
} />
Layer Variant
);
}
```
### Icon Only
```tsx
import { IconPlusFill } from "@karrotmarket/react-monochrome-icon";
import { Icon } from "@seed-design/react";
import { ContextualFloatingButton } from "seed-design/ui/contextual-floating-button";
export default function ContextualFloatingButtonIconOnly() {
return (
} />
);
}
```
### Loading
```tsx
import { IconPlusLine } from "@karrotmarket/react-monochrome-icon";
import { PrefixIcon } from "@seed-design/react";
import { useState } from "react";
import { ContextualFloatingButton } from "seed-design/ui/contextual-floating-button";
export default function ContextualFloatingButtonLoading() {
const [loading, setLoading] = useState(false);
function handleClick() {
setLoading(true);
setTimeout(() => setLoading(false), 2000);
}
// 이벤트 핸들링이 필요할 수 있으므로 loading은 disabled를 포함하지 않습니다. 이벤트 발생을 원하지 않는 경우, disabled 속성을 추가해주세요.
return (
} />
시간이 걸리는 액션
);
}
```