---
version: 1.0.0-beta.6
---
# Icons
URL: /docs/icons
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/icons.mdx
@vapor-ui/icons 라이브러리에서 제공하는 아이콘입니다.
아이콘을 클릭해 import 문을 복사할 수 있습니다.
***
title: Icons
description: |
@vapor-ui/icons 라이브러리에서 제공하는 아이콘입니다.
아이콘을 클릭해 import 문을 복사할 수 있습니다.
------------------------------
## Basic Icons
| Icon Name | Import Statement |
| --------------------------- | ------------------------------------------------------------- |
| `AchievementIcon` | `import { AchievementIcon } from '@vapor-ui/icons'` |
| `AddUserIcon` | `import { AddUserIcon } from '@vapor-ui/icons'` |
| `AiGoormeeIcon` | `import { AiGoormeeIcon } from '@vapor-ui/icons'` |
| `AiSmartieIcon` | `import { AiSmartieIcon } from '@vapor-ui/icons'` |
| `AirplayIcon` | `import { AirplayIcon } from '@vapor-ui/icons'` |
| `AlgorithmIcon` | `import { AlgorithmIcon } from '@vapor-ui/icons'` |
| `AppleIcon` | `import { AppleIcon } from '@vapor-ui/icons'` |
| `ArrowDownCircleIcon` | `import { ArrowDownCircleIcon } from '@vapor-ui/icons'` |
| `AssignmentIcon` | `import { AssignmentIcon } from '@vapor-ui/icons'` |
| `AwsIcon` | `import { AwsIcon } from '@vapor-ui/icons'` |
| `AzureIcon` | `import { AzureIcon } from '@vapor-ui/icons'` |
| `BedIcon` | `import { BedIcon } from '@vapor-ui/icons'` |
| `BellOffIcon` | `import { BellOffIcon } from '@vapor-ui/icons'` |
| `BellOnIcon` | `import { BellOnIcon } from '@vapor-ui/icons'` |
| `BitbucketIcon` | `import { BitbucketIcon } from '@vapor-ui/icons'` |
| `BlogColorIcon` | `import { BlogColorIcon } from '@vapor-ui/icons'` |
| `BlogIcon` | `import { BlogIcon } from '@vapor-ui/icons'` |
| `BookIcon` | `import { BookIcon } from '@vapor-ui/icons'` |
| `BookmarkIcon` | `import { BookmarkIcon } from '@vapor-ui/icons'` |
| `BottomPlayerIcon` | `import { BottomPlayerIcon } from '@vapor-ui/icons'` |
| `BranchIcon` | `import { BranchIcon } from '@vapor-ui/icons'` |
| `BreakpointIcon` | `import { BreakpointIcon } from '@vapor-ui/icons'` |
| `BuildIcon` | `import { BuildIcon } from '@vapor-ui/icons'` |
| `CafeIcon` | `import { CafeIcon } from '@vapor-ui/icons'` |
| `CakeIcon` | `import { CakeIcon } from '@vapor-ui/icons'` |
| `CalculatorIcon` | `import { CalculatorIcon } from '@vapor-ui/icons'` |
| `CalendarIcon` | `import { CalendarIcon } from '@vapor-ui/icons'` |
| `CallIcon` | `import { CallIcon } from '@vapor-ui/icons'` |
| `CameraIcon` | `import { CameraIcon } from '@vapor-ui/icons'` |
| `CampIcon` | `import { CampIcon } from '@vapor-ui/icons'` |
| `CaptionIcon` | `import { CaptionIcon } from '@vapor-ui/icons'` |
| `CarIcon` | `import { CarIcon } from '@vapor-ui/icons'` |
| `CardsIcon` | `import { CardsIcon } from '@vapor-ui/icons'` |
| `CaretDownIcon` | `import { CaretDownIcon } from '@vapor-ui/icons'` |
| `CaretLeftIcon` | `import { CaretLeftIcon } from '@vapor-ui/icons'` |
| `CaretRightIcon` | `import { CaretRightIcon } from '@vapor-ui/icons'` |
| `CaretUpIcon` | `import { CaretUpIcon } from '@vapor-ui/icons'` |
| `CertificateIcon` | `import { CertificateIcon } from '@vapor-ui/icons'` |
| `ChapterIcon` | `import { ChapterIcon } from '@vapor-ui/icons'` |
| `ChartPieIcon` | `import { ChartPieIcon } from '@vapor-ui/icons'` |
| `ChatgptIcon` | `import { ChatgptIcon } from '@vapor-ui/icons'` |
| `CheckCircleIcon` | `import { CheckCircleIcon } from '@vapor-ui/icons'` |
| `CheckboxIcon` | `import { CheckboxIcon } from '@vapor-ui/icons'` |
| `ChromeColorIcon` | `import { ChromeColorIcon } from '@vapor-ui/icons'` |
| `ChromeIcon` | `import { ChromeIcon } from '@vapor-ui/icons'` |
| `ClassIcon` | `import { ClassIcon } from '@vapor-ui/icons'` |
| `CodeBlockIcon` | `import { CodeBlockIcon } from '@vapor-ui/icons'` |
| `CodevisorIcon` | `import { CodevisorIcon } from '@vapor-ui/icons'` |
| `CollaborationIcon` | `import { CollaborationIcon } from '@vapor-ui/icons'` |
| `ComponentIcon` | `import { ComponentIcon } from '@vapor-ui/icons'` |
| `ContainerIcon` | `import { ContainerIcon } from '@vapor-ui/icons'` |
| `ContainerRunIcon` | `import { ContainerRunIcon } from '@vapor-ui/icons'` |
| `ContainerShareIcon` | `import { ContainerShareIcon } from '@vapor-ui/icons'` |
| `ContainerStopIcon` | `import { ContainerStopIcon } from '@vapor-ui/icons'` |
| `ContainerToImageIcon` | `import { ContainerToImageIcon } from '@vapor-ui/icons'` |
| `ControlCommonIcon` | `import { ControlCommonIcon } from '@vapor-ui/icons'` |
| `CopyIcon` | `import { CopyIcon } from '@vapor-ui/icons'` |
| `CouponIcon` | `import { CouponIcon } from '@vapor-ui/icons'` |
| `CourseHistoryIcon` | `import { CourseHistoryIcon } from '@vapor-ui/icons'` |
| `CourseIcon` | `import { CourseIcon } from '@vapor-ui/icons'` |
| `CpuIcon` | `import { CpuIcon } from '@vapor-ui/icons'` |
| `CreditCardIcon` | `import { CreditCardIcon } from '@vapor-ui/icons'` |
| `CursorshareoffIcon` | `import { CursorshareoffIcon } from '@vapor-ui/icons'` |
| `CursorshareonIcon` | `import { CursorshareonIcon } from '@vapor-ui/icons'` |
| `DarkIcon` | `import { DarkIcon } from '@vapor-ui/icons'` |
| `DashboardIcon` | `import { DashboardIcon } from '@vapor-ui/icons'` |
| `DatabaseIcon` | `import { DatabaseIcon } from '@vapor-ui/icons'` |
| `DebugContinueIcon` | `import { DebugContinueIcon } from '@vapor-ui/icons'` |
| `DebugIcon` | `import { DebugIcon } from '@vapor-ui/icons'` |
| `DeployPushIcon` | `import { DeployPushIcon } from '@vapor-ui/icons'` |
| `DetailViewIcon` | `import { DetailViewIcon } from '@vapor-ui/icons'` |
| `DiscIcon` | `import { DiscIcon } from '@vapor-ui/icons'` |
| `DiscordColorIcon` | `import { DiscordColorIcon } from '@vapor-ui/icons'` |
| `DiscordIcon` | `import { DiscordIcon } from '@vapor-ui/icons'` |
| `DiscussionIcon` | `import { DiscussionIcon } from '@vapor-ui/icons'` |
| `DiskIcon` | `import { DiskIcon } from '@vapor-ui/icons'` |
| `DislikeIcon` | `import { DislikeIcon } from '@vapor-ui/icons'` |
| `DislikeThumbIcon` | `import { DislikeThumbIcon } from '@vapor-ui/icons'` |
| `DividerIcon` | `import { DividerIcon } from '@vapor-ui/icons'` |
| `DockerIcon` | `import { DockerIcon } from '@vapor-ui/icons'` |
| `DocktoBottomIcon` | `import { DocktoBottomIcon } from '@vapor-ui/icons'` |
| `DocumentViewerIcon` | `import { DocumentViewerIcon } from '@vapor-ui/icons'` |
| `DotIcon` | `import { DotIcon } from '@vapor-ui/icons'` |
| `DownloadIcon` | `import { DownloadIcon } from '@vapor-ui/icons'` |
| `DragIndicatorIcon` | `import { DragIndicatorIcon } from '@vapor-ui/icons'` |
| `EditIcon` | `import { EditIcon } from '@vapor-ui/icons'` |
| `EraserIcon` | `import { EraserIcon } from '@vapor-ui/icons'` |
| `ErrorCircleIcon` | `import { ErrorCircleIcon } from '@vapor-ui/icons'` |
| `ExamIcon` | `import { ExamIcon } from '@vapor-ui/icons'` |
| `ExamListIcon` | `import { ExamListIcon } from '@vapor-ui/icons'` |
| `ExamReportIcon` | `import { ExamReportIcon } from '@vapor-ui/icons'` |
| `ExploreIcon` | `import { ExploreIcon } from '@vapor-ui/icons'` |
| `ExportIcon` | `import { ExportIcon } from '@vapor-ui/icons'` |
| `ExportImageIcon` | `import { ExportImageIcon } from '@vapor-ui/icons'` |
| `FacebookColorIcon` | `import { FacebookColorIcon } from '@vapor-ui/icons'` |
| `FacebookIcon` | `import { FacebookIcon } from '@vapor-ui/icons'` |
| `FigmaColorIcon` | `import { FigmaColorIcon } from '@vapor-ui/icons'` |
| `FigmaIcon` | `import { FigmaIcon } from '@vapor-ui/icons'` |
| `FileAddIcon` | `import { FileAddIcon } from '@vapor-ui/icons'` |
| `FileDeleteIcon` | `import { FileDeleteIcon } from '@vapor-ui/icons'` |
| `FileIcon` | `import { FileIcon } from '@vapor-ui/icons'` |
| `FilenewIcon` | `import { FilenewIcon } from '@vapor-ui/icons'` |
| `FilterIcon` | `import { FilterIcon } from '@vapor-ui/icons'` |
| `FirefoxColorIcon` | `import { FirefoxColorIcon } from '@vapor-ui/icons'` |
| `FlagIcon` | `import { FlagIcon } from '@vapor-ui/icons'` |
| `FlaskIcon` | `import { FlaskIcon } from '@vapor-ui/icons'` |
| `FlightIcon` | `import { FlightIcon } from '@vapor-ui/icons'` |
| `FoldIcon` | `import { FoldIcon } from '@vapor-ui/icons'` |
| `FolderIcon` | `import { FolderIcon } from '@vapor-ui/icons'` |
| `FolderNewIcon` | `import { FolderNewIcon } from '@vapor-ui/icons'` |
| `FolderSearchIcon` | `import { FolderSearchIcon } from '@vapor-ui/icons'` |
| `ForkIcon` | `import { ForkIcon } from '@vapor-ui/icons'` |
| `FunctionIcon` | `import { FunctionIcon } from '@vapor-ui/icons'` |
| `GameIcon` | `import { GameIcon } from '@vapor-ui/icons'` |
| `GcpIcon` | `import { GcpIcon } from '@vapor-ui/icons'` |
| `GitIcon` | `import { GitIcon } from '@vapor-ui/icons'` |
| `GithubColorIcon` | `import { GithubColorIcon } from '@vapor-ui/icons'` |
| `GithubIcon` | `import { GithubIcon } from '@vapor-ui/icons'` |
| `GitlabIcon` | `import { GitlabIcon } from '@vapor-ui/icons'` |
| `GoogleCalendarIcon` | `import { GoogleCalendarIcon } from '@vapor-ui/icons'` |
| `GoogleColorIcon` | `import { GoogleColorIcon } from '@vapor-ui/icons'` |
| `GoogleDrawingIcon` | `import { GoogleDrawingIcon } from '@vapor-ui/icons'` |
| `GoogleIcon` | `import { GoogleIcon } from '@vapor-ui/icons'` |
| `GooglePresentationIcon` | `import { GooglePresentationIcon } from '@vapor-ui/icons'` |
| `GoogleSpreadsheetIcon` | `import { GoogleSpreadsheetIcon } from '@vapor-ui/icons'` |
| `GoormduinoIcon` | `import { GoormduinoIcon } from '@vapor-ui/icons'` |
| `GpuIcon` | `import { GpuIcon } from '@vapor-ui/icons'` |
| `GroupIcon` | `import { GroupIcon } from '@vapor-ui/icons'` |
| `GuestIcon` | `import { GuestIcon } from '@vapor-ui/icons'` |
| `HeartIcon` | `import { HeartIcon } from '@vapor-ui/icons'` |
| `HelpCircleIcon` | `import { HelpCircleIcon } from '@vapor-ui/icons'` |
| `HelpIcon` | `import { HelpIcon } from '@vapor-ui/icons'` |
| `HighlightViewIcon` | `import { HighlightViewIcon } from '@vapor-ui/icons'` |
| `HomeIcon` | `import { HomeIcon } from '@vapor-ui/icons'` |
| `HourglassIcon` | `import { HourglassIcon } from '@vapor-ui/icons'` |
| `IdCardIcon` | `import { IdCardIcon } from '@vapor-ui/icons'` |
| `IdeShareIcon` | `import { IdeShareIcon } from '@vapor-ui/icons'` |
| `ImageIcon` | `import { ImageIcon } from '@vapor-ui/icons'` |
| `ImagePackIcon` | `import { ImagePackIcon } from '@vapor-ui/icons'` |
| `ImageToContainerIcon` | `import { ImageToContainerIcon } from '@vapor-ui/icons'` |
| `ImportIcon` | `import { ImportIcon } from '@vapor-ui/icons'` |
| `InfoCircleIcon` | `import { InfoCircleIcon } from '@vapor-ui/icons'` |
| `InstagramColorIcon` | `import { InstagramColorIcon } from '@vapor-ui/icons'` |
| `InstagramIcon` | `import { InstagramIcon } from '@vapor-ui/icons'` |
| `IntelliSenseClassIcon` | `import { IntelliSenseClassIcon } from '@vapor-ui/icons'` |
| `IntelliSenseColorIcon` | `import { IntelliSenseColorIcon } from '@vapor-ui/icons'` |
| `IntelliSenseConstantIcon` | `import { IntelliSenseConstantIcon } from '@vapor-ui/icons'` |
| `IntelliSenseEnumIcon` | `import { IntelliSenseEnumIcon } from '@vapor-ui/icons'` |
| `IntelliSenseEventIcon` | `import { IntelliSenseEventIcon } from '@vapor-ui/icons'` |
| `IntelliSenseFunctionIcon` | `import { IntelliSenseFunctionIcon } from '@vapor-ui/icons'` |
| `IntelliSenseInterfaceIcon` | `import { IntelliSenseInterfaceIcon } from '@vapor-ui/icons'` |
| `IntelliSenseModuleIcon` | `import { IntelliSenseModuleIcon } from '@vapor-ui/icons'` |
| `IntelliSenseNullIcon` | `import { IntelliSenseNullIcon } from '@vapor-ui/icons'` |
| `IntelliSenseOperatorIcon` | `import { IntelliSenseOperatorIcon } from '@vapor-ui/icons'` |
| `IntelliSensePropertyIcon` | `import { IntelliSensePropertyIcon } from '@vapor-ui/icons'` |
| `IntelliSenseSnippetIcon` | `import { IntelliSenseSnippetIcon } from '@vapor-ui/icons'` |
| `IntelliSenseStructureIcon` | `import { IntelliSenseStructureIcon } from '@vapor-ui/icons'` |
| `IntelliSenseTextIcon` | `import { IntelliSenseTextIcon } from '@vapor-ui/icons'` |
| `IntelliSenseUnitIcon` | `import { IntelliSenseUnitIcon } from '@vapor-ui/icons'` |
| `IntelliSenseValueIcon` | `import { IntelliSenseValueIcon } from '@vapor-ui/icons'` |
| `IntellijColorIcon` | `import { IntellijColorIcon } from '@vapor-ui/icons'` |
| `ItalicIcon` | `import { ItalicIcon } from '@vapor-ui/icons'` |
| `JiraIcon` | `import { JiraIcon } from '@vapor-ui/icons'` |
| `JupyterColorIcon` | `import { JupyterColorIcon } from '@vapor-ui/icons'` |
| `JupyterlabColorIcon` | `import { JupyterlabColorIcon } from '@vapor-ui/icons'` |
| `JupyterlabIcon` | `import { JupyterlabIcon } from '@vapor-ui/icons'` |
| `KakaoIcon` | `import { KakaoIcon } from '@vapor-ui/icons'` |
| `KeyboardIcon` | `import { KeyboardIcon } from '@vapor-ui/icons'` |
| `KeyboardTabIcon` | `import { KeyboardTabIcon } from '@vapor-ui/icons'` |
| `KidIcon` | `import { KidIcon } from '@vapor-ui/icons'` |
| `KrampolineIcon` | `import { KrampolineIcon } from '@vapor-ui/icons'` |
| `KubernatesIcon` | `import { KubernatesIcon } from '@vapor-ui/icons'` |
| `LightIcon` | `import { LightIcon } from '@vapor-ui/icons'` |
| `LightbulbIcon` | `import { LightbulbIcon } from '@vapor-ui/icons'` |
| `LightningIcon` | `import { LightningIcon } from '@vapor-ui/icons'` |
| `LikeIcon` | `import { LikeIcon } from '@vapor-ui/icons'` |
| `LikeThumbIcon` | `import { LikeThumbIcon } from '@vapor-ui/icons'` |
| `LinkedinIcon` | `import { LinkedinIcon } from '@vapor-ui/icons'` |
| `ListIcon` | `import { ListIcon } from '@vapor-ui/icons'` |
| `ListNumberedIcon` | `import { ListNumberedIcon } from '@vapor-ui/icons'` |
| `LiveLessonIcon` | `import { LiveLessonIcon } from '@vapor-ui/icons'` |
| `LocationIcon` | `import { LocationIcon } from '@vapor-ui/icons'` |
| `LockIcon` | `import { LockIcon } from '@vapor-ui/icons'` |
| `MagicWandIcon` | `import { MagicWandIcon } from '@vapor-ui/icons'` |
| `MailIcon` | `import { MailIcon } from '@vapor-ui/icons'` |
| `MarkModeIcon` | `import { MarkModeIcon } from '@vapor-ui/icons'` |
| `MarkdownIcon` | `import { MarkdownIcon } from '@vapor-ui/icons'` |
| `MediumIcon` | `import { MediumIcon } from '@vapor-ui/icons'` |
| `MemoIcon` | `import { MemoIcon } from '@vapor-ui/icons'` |
| `MemoryIcon` | `import { MemoryIcon } from '@vapor-ui/icons'` |
| `MessageIcon` | `import { MessageIcon } from '@vapor-ui/icons'` |
| `MethodIcon` | `import { MethodIcon } from '@vapor-ui/icons'` |
| `MicOffIcon` | `import { MicOffIcon } from '@vapor-ui/icons'` |
| `MicOnIcon` | `import { MicOnIcon } from '@vapor-ui/icons'` |
| `MinusBoxIcon` | `import { MinusBoxIcon } from '@vapor-ui/icons'` |
| `MovieIcon` | `import { MovieIcon } from '@vapor-ui/icons'` |
| `MysqlColorIcon` | `import { MysqlColorIcon } from '@vapor-ui/icons'` |
| `MysqlIcon` | `import { MysqlIcon } from '@vapor-ui/icons'` |
| `NaverIcon` | `import { NaverIcon } from '@vapor-ui/icons'` |
| `NaverblogColorIcon` | `import { NaverblogColorIcon } from '@vapor-ui/icons'` |
| `NaverblogIcon` | `import { NaverblogIcon } from '@vapor-ui/icons'` |
| `NetworkIcon` | `import { NetworkIcon } from '@vapor-ui/icons'` |
| `NextIcon` | `import { NextIcon } from '@vapor-ui/icons'` |
| `NoImageIcon` | `import { NoImageIcon } from '@vapor-ui/icons'` |
| `NoUserIcon` | `import { NoUserIcon } from '@vapor-ui/icons'` |
| `NoticeBoardIcon` | `import { NoticeBoardIcon } from '@vapor-ui/icons'` |
| `NoticeCircleIcon` | `import { NoticeCircleIcon } from '@vapor-ui/icons'` |
| `NotionIcon` | `import { NotionIcon } from '@vapor-ui/icons'` |
| `ObjectIcon` | `import { ObjectIcon } from '@vapor-ui/icons'` |
| `OpenFileIcon` | `import { OpenFileIcon } from '@vapor-ui/icons'` |
| `OpenFolderIcon` | `import { OpenFolderIcon } from '@vapor-ui/icons'` |
| `OperaColorIcon` | `import { OperaColorIcon } from '@vapor-ui/icons'` |
| `OrganizationIcon` | `import { OrganizationIcon } from '@vapor-ui/icons'` |
| `PanelOpenIcon` | `import { PanelOpenIcon } from '@vapor-ui/icons'` |
| `ParentsIcon` | `import { ParentsIcon } from '@vapor-ui/icons'` |
| `PauseIcon` | `import { PauseIcon } from '@vapor-ui/icons'` |
| `PaycoIcon` | `import { PaycoIcon } from '@vapor-ui/icons'` |
| `PaypalColorIcon` | `import { PaypalColorIcon } from '@vapor-ui/icons'` |
| `PcIcon` | `import { PcIcon } from '@vapor-ui/icons'` |
| `PdfIcon` | `import { PdfIcon } from '@vapor-ui/icons'` |
| `PhoneIcon` | `import { PhoneIcon } from '@vapor-ui/icons'` |
| `PinSetIcon` | `import { PinSetIcon } from '@vapor-ui/icons'` |
| `PipetteIcon` | `import { PipetteIcon } from '@vapor-ui/icons'` |
| `PlansIcon` | `import { PlansIcon } from '@vapor-ui/icons'` |
| `PlayIcon` | `import { PlayIcon } from '@vapor-ui/icons'` |
| `PlugInIcon` | `import { PlugInIcon } from '@vapor-ui/icons'` |
| `PlugOutIcon` | `import { PlugOutIcon } from '@vapor-ui/icons'` |
| `PlusBoxIcon` | `import { PlusBoxIcon } from '@vapor-ui/icons'` |
| `PortforwardingIcon` | `import { PortforwardingIcon } from '@vapor-ui/icons'` |
| `PowerIcon` | `import { PowerIcon } from '@vapor-ui/icons'` |
| `PreIcon` | `import { PreIcon } from '@vapor-ui/icons'` |
| `PresentScreenIcon` | `import { PresentScreenIcon } from '@vapor-ui/icons'` |
| `PreviewIcon` | `import { PreviewIcon } from '@vapor-ui/icons'` |
| `PrintIcon` | `import { PrintIcon } from '@vapor-ui/icons'` |
| `ProductHuntColorIcon` | `import { ProductHuntColorIcon } from '@vapor-ui/icons'` |
| `ProgrammingIcon` | `import { ProgrammingIcon } from '@vapor-ui/icons'` |
| `ProjectIcon` | `import { ProjectIcon } from '@vapor-ui/icons'` |
| `ProjectOpenIcon` | `import { ProjectOpenIcon } from '@vapor-ui/icons'` |
| `ProjectSettingIcon` | `import { ProjectSettingIcon } from '@vapor-ui/icons'` |
| `PropertyIcon` | `import { PropertyIcon } from '@vapor-ui/icons'` |
| `PsychologyIcon` | `import { PsychologyIcon } from '@vapor-ui/icons'` |
| `PublishIcon` | `import { PublishIcon } from '@vapor-ui/icons'` |
| `QnAIcon` | `import { QnAIcon } from '@vapor-ui/icons'` |
| `QuoteIcon` | `import { QuoteIcon } from '@vapor-ui/icons'` |
| `ReferenceIcon` | `import { ReferenceIcon } from '@vapor-ui/icons'` |
| `RemoteIcon` | `import { RemoteIcon } from '@vapor-ui/icons'` |
| `RemoteOffIcon` | `import { RemoteOffIcon } from '@vapor-ui/icons'` |
| `ReplaceIcon` | `import { ReplaceIcon } from '@vapor-ui/icons'` |
| `ResultManagementIcon` | `import { ResultManagementIcon } from '@vapor-ui/icons'` |
| `RouteIcon` | `import { RouteIcon } from '@vapor-ui/icons'` |
| `RstudioColorIcon` | `import { RstudioColorIcon } from '@vapor-ui/icons'` |
| `RunIcon` | `import { RunIcon } from '@vapor-ui/icons'` |
| `SaveAsIcon` | `import { SaveAsIcon } from '@vapor-ui/icons'` |
| `SaveIcon` | `import { SaveIcon } from '@vapor-ui/icons'` |
| `SavingIcon` | `import { SavingIcon } from '@vapor-ui/icons'` |
| `SbomIcon` | `import { SbomIcon } from '@vapor-ui/icons'` |
| `SchoolIcon` | `import { SchoolIcon } from '@vapor-ui/icons'` |
| `SendIcon` | `import { SendIcon } from '@vapor-ui/icons'` |
| `SentryIcon` | `import { SentryIcon } from '@vapor-ui/icons'` |
| `SettingIcon` | `import { SettingIcon } from '@vapor-ui/icons'` |
| `ShareIcon` | `import { ShareIcon } from '@vapor-ui/icons'` |
| `ShoppingCartIcon` | `import { ShoppingCartIcon } from '@vapor-ui/icons'` |
| `SideNavIcon` | `import { SideNavIcon } from '@vapor-ui/icons'` |
| `SlackColorIcon` | `import { SlackColorIcon } from '@vapor-ui/icons'` |
| `SlackIcon` | `import { SlackIcon } from '@vapor-ui/icons'` |
| `SlotIcon` | `import { SlotIcon } from '@vapor-ui/icons'` |
| `SoundOffIcon` | `import { SoundOffIcon } from '@vapor-ui/icons'` |
| `SoundOnIcon` | `import { SoundOnIcon } from '@vapor-ui/icons'` |
| `SourcecodeIcon` | `import { SourcecodeIcon } from '@vapor-ui/icons'` |
| `SplitIcon` | `import { SplitIcon } from '@vapor-ui/icons'` |
| `SshIcon` | `import { SshIcon } from '@vapor-ui/icons'` |
| `StarIcon` | `import { StarIcon } from '@vapor-ui/icons'` |
| `StopIcon` | `import { StopIcon } from '@vapor-ui/icons'` |
| `StorageIcon` | `import { StorageIcon } from '@vapor-ui/icons'` |
| `StorybookColorIcon` | `import { StorybookColorIcon } from '@vapor-ui/icons'` |
| `StorybookIcon` | `import { StorybookIcon } from '@vapor-ui/icons'` |
| `StripeColorIcon` | `import { StripeColorIcon } from '@vapor-ui/icons'` |
| `StripeIcon` | `import { StripeIcon } from '@vapor-ui/icons'` |
| `StruckIcon` | `import { StruckIcon } from '@vapor-ui/icons'` |
| `StudentManagementIcon` | `import { StudentManagementIcon } from '@vapor-ui/icons'` |
| `SyllabusIcon` | `import { SyllabusIcon } from '@vapor-ui/icons'` |
| `TabletIcon` | `import { TabletIcon } from '@vapor-ui/icons'` |
| `TaegukColorIcon` | `import { TaegukColorIcon } from '@vapor-ui/icons'` |
| `TaegukIcon` | `import { TaegukIcon } from '@vapor-ui/icons'` |
| `TakeoffIcon` | `import { TakeoffIcon } from '@vapor-ui/icons'` |
| `TestIcon` | `import { TestIcon } from '@vapor-ui/icons'` |
| `TimeIcon` | `import { TimeIcon } from '@vapor-ui/icons'` |
| `TrashIcon` | `import { TrashIcon } from '@vapor-ui/icons'` |
| `TreeCollapseIcon` | `import { TreeCollapseIcon } from '@vapor-ui/icons'` |
| `TrelloIcon` | `import { TrelloIcon } from '@vapor-ui/icons'` |
| `TwoFileIcon` | `import { TwoFileIcon } from '@vapor-ui/icons'` |
| `UnlockIcon` | `import { UnlockIcon } from '@vapor-ui/icons'` |
| `UploadIcon` | `import { UploadIcon } from '@vapor-ui/icons'` |
| `UppercaseIcon` | `import { UppercaseIcon } from '@vapor-ui/icons'` |
| `UserCheckIcon` | `import { UserCheckIcon } from '@vapor-ui/icons'` |
| `UserIcon` | `import { UserIcon } from '@vapor-ui/icons'` |
| `UserMoveIcon` | `import { UserMoveIcon } from '@vapor-ui/icons'` |
| `UserSearchIcon` | `import { UserSearchIcon } from '@vapor-ui/icons'` |
| `VariableIcon` | `import { VariableIcon } from '@vapor-ui/icons'` |
| `VideocamOffIcon` | `import { VideocamOffIcon } from '@vapor-ui/icons'` |
| `VideocamOnIcon` | `import { VideocamOnIcon } from '@vapor-ui/icons'` |
| `ViewModuleIcon` | `import { ViewModuleIcon } from '@vapor-ui/icons'` |
| `ViewOffIcon` | `import { ViewOffIcon } from '@vapor-ui/icons'` |
| `ViewOnIcon` | `import { ViewOnIcon } from '@vapor-ui/icons'` |
| `VscodeColorIcon` | `import { VscodeColorIcon } from '@vapor-ui/icons'` |
| `VscodeIcon` | `import { VscodeIcon } from '@vapor-ui/icons'` |
| `WarningIcon` | `import { WarningIcon } from '@vapor-ui/icons'` |
| `WordMatchIcon` | `import { WordMatchIcon } from '@vapor-ui/icons'` |
| `XIcon` | `import { XIcon } from '@vapor-ui/icons'` |
| `YoutubeColorIcon` | `import { YoutubeColorIcon } from '@vapor-ui/icons'` |
| `YoutubeIcon` | `import { YoutubeIcon } from '@vapor-ui/icons'` |
## Outline Icons
| Icon Name | Import Statement |
| -------------------------------------- | ------------------------------------------------------------------------ |
| `AccessibilityOutlineIcon` | `import { AccessibilityOutlineIcon } from '@vapor-ui/icons'` |
| `AchievementOutlineIcon` | `import { AchievementOutlineIcon } from '@vapor-ui/icons'` |
| `AddCartOutlineIcon` | `import { AddCartOutlineIcon } from '@vapor-ui/icons'` |
| `AddUserOutlineIcon` | `import { AddUserOutlineIcon } from '@vapor-ui/icons'` |
| `AiGoormeeOutlineIcon` | `import { AiGoormeeOutlineIcon } from '@vapor-ui/icons'` |
| `AiSmartieOutlineIcon` | `import { AiSmartieOutlineIcon } from '@vapor-ui/icons'` |
| `AichatOutlineIcon` | `import { AichatOutlineIcon } from '@vapor-ui/icons'` |
| `AirplayOutlineIcon` | `import { AirplayOutlineIcon } from '@vapor-ui/icons'` |
| `AlgorithmOutlineIcon` | `import { AlgorithmOutlineIcon } from '@vapor-ui/icons'` |
| `AlignCenterOutlineIcon` | `import { AlignCenterOutlineIcon } from '@vapor-ui/icons'` |
| `AlignJustifyOutlineIcon` | `import { AlignJustifyOutlineIcon } from '@vapor-ui/icons'` |
| `AlignLeftOutlineIcon` | `import { AlignLeftOutlineIcon } from '@vapor-ui/icons'` |
| `AlignRightOutlineIcon` | `import { AlignRightOutlineIcon } from '@vapor-ui/icons'` |
| `AnalysisOutlineIcon` | `import { AnalysisOutlineIcon } from '@vapor-ui/icons'` |
| `ArrowDownOutlineIcon` | `import { ArrowDownOutlineIcon } from '@vapor-ui/icons'` |
| `ArrowUpOutlineIcon` | `import { ArrowUpOutlineIcon } from '@vapor-ui/icons'` |
| `AssignmentOutlineIcon` | `import { AssignmentOutlineIcon } from '@vapor-ui/icons'` |
| `AttachFileOutlineIcon` | `import { AttachFileOutlineIcon } from '@vapor-ui/icons'` |
| `AttemptOutlineIcon` | `import { AttemptOutlineIcon } from '@vapor-ui/icons'` |
| `AutoCodeOutlineIcon` | `import { AutoCodeOutlineIcon } from '@vapor-ui/icons'` |
| `BackPageOutlineIcon` | `import { BackPageOutlineIcon } from '@vapor-ui/icons'` |
| `BackUpOutlineIcon` | `import { BackUpOutlineIcon } from '@vapor-ui/icons'` |
| `BedOutlineIcon` | `import { BedOutlineIcon } from '@vapor-ui/icons'` |
| `BellOffOutlineIcon` | `import { BellOffOutlineIcon } from '@vapor-ui/icons'` |
| `BellOnOutlineIcon` | `import { BellOnOutlineIcon } from '@vapor-ui/icons'` |
| `BlankOutlineIcon` | `import { BlankOutlineIcon } from '@vapor-ui/icons'` |
| `BlockOutlineIcon` | `import { BlockOutlineIcon } from '@vapor-ui/icons'` |
| `BoldOutlineIcon` | `import { BoldOutlineIcon } from '@vapor-ui/icons'` |
| `BookOutlineIcon` | `import { BookOutlineIcon } from '@vapor-ui/icons'` |
| `BookmarkOutlineIcon` | `import { BookmarkOutlineIcon } from '@vapor-ui/icons'` |
| `BottomPlayerOutlineIcon` | `import { BottomPlayerOutlineIcon } from '@vapor-ui/icons'` |
| `BranchOutlineIcon` | `import { BranchOutlineIcon } from '@vapor-ui/icons'` |
| `BuildOutlineIcon` | `import { BuildOutlineIcon } from '@vapor-ui/icons'` |
| `BulletlistOutlineIcon` | `import { BulletlistOutlineIcon } from '@vapor-ui/icons'` |
| `CafeOutlineIcon` | `import { CafeOutlineIcon } from '@vapor-ui/icons'` |
| `CakeOutlineIcon` | `import { CakeOutlineIcon } from '@vapor-ui/icons'` |
| `CalculatorOutlineIcon` | `import { CalculatorOutlineIcon } from '@vapor-ui/icons'` |
| `CalendarOutlineIcon` | `import { CalendarOutlineIcon } from '@vapor-ui/icons'` |
| `CallOutlineIcon` | `import { CallOutlineIcon } from '@vapor-ui/icons'` |
| `CameraOutlineIcon` | `import { CameraOutlineIcon } from '@vapor-ui/icons'` |
| `CampOutlineIcon` | `import { CampOutlineIcon } from '@vapor-ui/icons'` |
| `CaptionOutlineIcon` | `import { CaptionOutlineIcon } from '@vapor-ui/icons'` |
| `CarOutlineIcon` | `import { CarOutlineIcon } from '@vapor-ui/icons'` |
| `CardsOutlineIcon` | `import { CardsOutlineIcon } from '@vapor-ui/icons'` |
| `CertificateOutlineIcon` | `import { CertificateOutlineIcon } from '@vapor-ui/icons'` |
| `ChapterOutlineIcon` | `import { ChapterOutlineIcon } from '@vapor-ui/icons'` |
| `ChartOutlineIcon` | `import { ChartOutlineIcon } from '@vapor-ui/icons'` |
| `ChartPieOutlineIcon` | `import { ChartPieOutlineIcon } from '@vapor-ui/icons'` |
| `CheckCartOutlineIcon` | `import { CheckCartOutlineIcon } from '@vapor-ui/icons'` |
| `CheckCircleOutlineIcon` | `import { CheckCircleOutlineIcon } from '@vapor-ui/icons'` |
| `ChecklistOutlineIcon` | `import { ChecklistOutlineIcon } from '@vapor-ui/icons'` |
| `ChevronDoubleLeftOutlineIcon` | `import { ChevronDoubleLeftOutlineIcon } from '@vapor-ui/icons'` |
| `ChevronDoubleRightOutlineIcon` | `import { ChevronDoubleRightOutlineIcon } from '@vapor-ui/icons'` |
| `ChevronDownOutlineIcon` | `import { ChevronDownOutlineIcon } from '@vapor-ui/icons'` |
| `ChevronLeftOutlineIcon` | `import { ChevronLeftOutlineIcon } from '@vapor-ui/icons'` |
| `ChevronRightOutlineIcon` | `import { ChevronRightOutlineIcon } from '@vapor-ui/icons'` |
| `ChevronUpOutlineIcon` | `import { ChevronUpOutlineIcon } from '@vapor-ui/icons'` |
| `CloseOutlineIcon` | `import { CloseOutlineIcon } from '@vapor-ui/icons'` |
| `CodeBlockOutlineIcon` | `import { CodeBlockOutlineIcon } from '@vapor-ui/icons'` |
| `CollaborationOutlineIcon` | `import { CollaborationOutlineIcon } from '@vapor-ui/icons'` |
| `CollapseOutlineIcon` | `import { CollapseOutlineIcon } from '@vapor-ui/icons'` |
| `CommitOutlineIcon` | `import { CommitOutlineIcon } from '@vapor-ui/icons'` |
| `ConfirmOutlineIcon` | `import { ConfirmOutlineIcon } from '@vapor-ui/icons'` |
| `ContainerOutlineIcon` | `import { ContainerOutlineIcon } from '@vapor-ui/icons'` |
| `ContainerRunOutlineIcon` | `import { ContainerRunOutlineIcon } from '@vapor-ui/icons'` |
| `ContainerShareOutlineIcon` | `import { ContainerShareOutlineIcon } from '@vapor-ui/icons'` |
| `ContainerStopOutlineIcon` | `import { ContainerStopOutlineIcon } from '@vapor-ui/icons'` |
| `ControlCommonOutlineIcon` | `import { ControlCommonOutlineIcon } from '@vapor-ui/icons'` |
| `CopyAsMarkdownOutlineIcon` | `import { CopyAsMarkdownOutlineIcon } from '@vapor-ui/icons'` |
| `CopyOutlineIcon` | `import { CopyOutlineIcon } from '@vapor-ui/icons'` |
| `CorrectOutlineIcon` | `import { CorrectOutlineIcon } from '@vapor-ui/icons'` |
| `CouponOutlineIcon` | `import { CouponOutlineIcon } from '@vapor-ui/icons'` |
| `CourseOutlineIcon` | `import { CourseOutlineIcon } from '@vapor-ui/icons'` |
| `CpuOutlineIcon` | `import { CpuOutlineIcon } from '@vapor-ui/icons'` |
| `CreateBranchOutlineIcon` | `import { CreateBranchOutlineIcon } from '@vapor-ui/icons'` |
| `CreditCardOutlineIcon` | `import { CreditCardOutlineIcon } from '@vapor-ui/icons'` |
| `DarkOutlineIcon` | `import { DarkOutlineIcon } from '@vapor-ui/icons'` |
| `DashboardOutlineIcon` | `import { DashboardOutlineIcon } from '@vapor-ui/icons'` |
| `DatabaseOutlineIcon` | `import { DatabaseOutlineIcon } from '@vapor-ui/icons'` |
| `DebugOutlineIcon` | `import { DebugOutlineIcon } from '@vapor-ui/icons'` |
| `DeployOutlineIcon` | `import { DeployOutlineIcon } from '@vapor-ui/icons'` |
| `DeployPushOutlineIcon` | `import { DeployPushOutlineIcon } from '@vapor-ui/icons'` |
| `DetailViewOutlineIcon` | `import { DetailViewOutlineIcon } from '@vapor-ui/icons'` |
| `DiscOutlineIcon` | `import { DiscOutlineIcon } from '@vapor-ui/icons'` |
| `DiscardOutlineIcon` | `import { DiscardOutlineIcon } from '@vapor-ui/icons'` |
| `DiscussionOutlineIcon` | `import { DiscussionOutlineIcon } from '@vapor-ui/icons'` |
| `DislikeOutlineIcon` | `import { DislikeOutlineIcon } from '@vapor-ui/icons'` |
| `DislikeThumbOutlineIcon` | `import { DislikeThumbOutlineIcon } from '@vapor-ui/icons'` |
| `DividerOutlineIcon` | `import { DividerOutlineIcon } from '@vapor-ui/icons'` |
| `DocktoBottomOutlineIcon` | `import { DocktoBottomOutlineIcon } from '@vapor-ui/icons'` |
| `DocumentViewerOutlineIcon` | `import { DocumentViewerOutlineIcon } from '@vapor-ui/icons'` |
| `DollarOutlineIcon` | `import { DollarOutlineIcon } from '@vapor-ui/icons'` |
| `DownloadOutlineIcon` | `import { DownloadOutlineIcon } from '@vapor-ui/icons'` |
| `EditOutlineIcon` | `import { EditOutlineIcon } from '@vapor-ui/icons'` |
| `EnterOutlineIcon` | `import { EnterOutlineIcon } from '@vapor-ui/icons'` |
| `EqualOutlineIcon` | `import { EqualOutlineIcon } from '@vapor-ui/icons'` |
| `EraserOutlineIcon` | `import { EraserOutlineIcon } from '@vapor-ui/icons'` |
| `ErrorCircleOutlineIcon` | `import { ErrorCircleOutlineIcon } from '@vapor-ui/icons'` |
| `ExamListOutlineIcon` | `import { ExamListOutlineIcon } from '@vapor-ui/icons'` |
| `ExamOutlineIcon` | `import { ExamOutlineIcon } from '@vapor-ui/icons'` |
| `ExamReportOutlineIcon` | `import { ExamReportOutlineIcon } from '@vapor-ui/icons'` |
| `ExpandOutlineIcon` | `import { ExpandOutlineIcon } from '@vapor-ui/icons'` |
| `ExploreOutlineIcon` | `import { ExploreOutlineIcon } from '@vapor-ui/icons'` |
| `ExportOutlineIcon` | `import { ExportOutlineIcon } from '@vapor-ui/icons'` |
| `FileAddOutlineIcon` | `import { FileAddOutlineIcon } from '@vapor-ui/icons'` |
| `FileDeleteOutlineIcon` | `import { FileDeleteOutlineIcon } from '@vapor-ui/icons'` |
| `FileEditOutlineIcon` | `import { FileEditOutlineIcon } from '@vapor-ui/icons'` |
| `FileNewOutlineIcon` | `import { FileNewOutlineIcon } from '@vapor-ui/icons'` |
| `FileOutlineIcon` | `import { FileOutlineIcon } from '@vapor-ui/icons'` |
| `FilterOutlineIcon` | `import { FilterOutlineIcon } from '@vapor-ui/icons'` |
| `FlagOutlineIcon` | `import { FlagOutlineIcon } from '@vapor-ui/icons'` |
| `FoldOutlineIcon` | `import { FoldOutlineIcon } from '@vapor-ui/icons'` |
| `FolderNewOutlineIcon` | `import { FolderNewOutlineIcon } from '@vapor-ui/icons'` |
| `FolderOutlineIcon` | `import { FolderOutlineIcon } from '@vapor-ui/icons'` |
| `FolderSearchOutlineIcon` | `import { FolderSearchOutlineIcon } from '@vapor-ui/icons'` |
| `ForkOutlineIcon` | `import { ForkOutlineIcon } from '@vapor-ui/icons'` |
| `FormatColorTextOutlineIcon` | `import { FormatColorTextOutlineIcon } from '@vapor-ui/icons'` |
| `ForwardPageOutlineIcon` | `import { ForwardPageOutlineIcon } from '@vapor-ui/icons'` |
| `FunctionOutlineIcon` | `import { FunctionOutlineIcon } from '@vapor-ui/icons'` |
| `FunctionsOutlineIcon` | `import { FunctionsOutlineIcon } from '@vapor-ui/icons'` |
| `GameOutlineIcon` | `import { GameOutlineIcon } from '@vapor-ui/icons'` |
| `GiftOutlineIcon` | `import { GiftOutlineIcon } from '@vapor-ui/icons'` |
| `GitMergeOutlineIcon` | `import { GitMergeOutlineIcon } from '@vapor-ui/icons'` |
| `GlobalOutlineIcon` | `import { GlobalOutlineIcon } from '@vapor-ui/icons'` |
| `GoogleDrawingOutlineIcon` | `import { GoogleDrawingOutlineIcon } from '@vapor-ui/icons'` |
| `GooglePresentationOutlineIcon` | `import { GooglePresentationOutlineIcon } from '@vapor-ui/icons'` |
| `GoogleSpreadsheetOutlineIcon` | `import { GoogleSpreadsheetOutlineIcon } from '@vapor-ui/icons'` |
| `GroupOutlineIcon` | `import { GroupOutlineIcon } from '@vapor-ui/icons'` |
| `HardBreakOutlineIcon` | `import { HardBreakOutlineIcon } from '@vapor-ui/icons'` |
| `Heading1OutlineIcon` | `import { Heading1OutlineIcon } from '@vapor-ui/icons'` |
| `Heading2OutlineIcon` | `import { Heading2OutlineIcon } from '@vapor-ui/icons'` |
| `Heading3OutlineIcon` | `import { Heading3OutlineIcon } from '@vapor-ui/icons'` |
| `Heading4OutlineIcon` | `import { Heading4OutlineIcon } from '@vapor-ui/icons'` |
| `HeadingOutlineIcon` | `import { HeadingOutlineIcon } from '@vapor-ui/icons'` |
| `HeartOutlineIcon` | `import { HeartOutlineIcon } from '@vapor-ui/icons'` |
| `HelpCircleOutlineIcon` | `import { HelpCircleOutlineIcon } from '@vapor-ui/icons'` |
| `HighlightViewOutlineIcon` | `import { HighlightViewOutlineIcon } from '@vapor-ui/icons'` |
| `HistoryOutlineIcon` | `import { HistoryOutlineIcon } from '@vapor-ui/icons'` |
| `HomeOutlineIcon` | `import { HomeOutlineIcon } from '@vapor-ui/icons'` |
| `IdCardOutlineIcon` | `import { IdCardOutlineIcon } from '@vapor-ui/icons'` |
| `ImageOutlineIcon` | `import { ImageOutlineIcon } from '@vapor-ui/icons'` |
| `ImagePackOutlineIcon` | `import { ImagePackOutlineIcon } from '@vapor-ui/icons'` |
| `ImageToContainerOutlineIcon` | `import { ImageToContainerOutlineIcon } from '@vapor-ui/icons'` |
| `ImportOutlineIcon` | `import { ImportOutlineIcon } from '@vapor-ui/icons'` |
| `InOutlineIcon` | `import { InOutlineIcon } from '@vapor-ui/icons'` |
| `IndentDecreaseOutlineIcon` | `import { IndentDecreaseOutlineIcon } from '@vapor-ui/icons'` |
| `IndentIncreaseOutlineIcon` | `import { IndentIncreaseOutlineIcon } from '@vapor-ui/icons'` |
| `InfiniteOutlineIcon` | `import { InfiniteOutlineIcon } from '@vapor-ui/icons'` |
| `InfoCircleOutlineIcon` | `import { InfoCircleOutlineIcon } from '@vapor-ui/icons'` |
| `InputSettingOutlineIcon` | `import { InputSettingOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSenseEnumOutlineIcon` | `import { IntelliSenseEnumOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSenseEventOutlineIcon` | `import { IntelliSenseEventOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSenseFieldOutlineIcon` | `import { IntelliSenseFieldOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSenseModuleOutlineIcon` | `import { IntelliSenseModuleOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSensePropertyOutlineIcon` | `import { IntelliSensePropertyOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSenseReferenceOutlineIcon` | `import { IntelliSenseReferenceOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSenseSnippetOutlineIcon` | `import { IntelliSenseSnippetOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSenseTypeParameterOutlineIcon` | `import { IntelliSenseTypeParameterOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSenseUnitOutlineIcon` | `import { IntelliSenseUnitOutlineIcon } from '@vapor-ui/icons'` |
| `IntelliSenseVariableOutlineIcon` | `import { IntelliSenseVariableOutlineIcon } from '@vapor-ui/icons'` |
| `KeyboardOutlineIcon` | `import { KeyboardOutlineIcon } from '@vapor-ui/icons'` |
| `KidOutlineIcon` | `import { KidOutlineIcon } from '@vapor-ui/icons'` |
| `LightOutlineIcon` | `import { LightOutlineIcon } from '@vapor-ui/icons'` |
| `LightbulbOutlineIcon` | `import { LightbulbOutlineIcon } from '@vapor-ui/icons'` |
| `LightningOutlineIcon` | `import { LightningOutlineIcon } from '@vapor-ui/icons'` |
| `LikeOutlineIcon` | `import { LikeOutlineIcon } from '@vapor-ui/icons'` |
| `LikeThumbOutlineIcon` | `import { LikeThumbOutlineIcon } from '@vapor-ui/icons'` |
| `LineSpacingOutlineIcon` | `import { LineSpacingOutlineIcon } from '@vapor-ui/icons'` |
| `LineStyleOutlineIcon` | `import { LineStyleOutlineIcon } from '@vapor-ui/icons'` |
| `LinearScaleOutlineIcon` | `import { LinearScaleOutlineIcon } from '@vapor-ui/icons'` |
| `LinkOffOutlineIcon` | `import { LinkOffOutlineIcon } from '@vapor-ui/icons'` |
| `LinkOutlineIcon` | `import { LinkOutlineIcon } from '@vapor-ui/icons'` |
| `LiveLessonOutlineIcon` | `import { LiveLessonOutlineIcon } from '@vapor-ui/icons'` |
| `LocationOutlineIcon` | `import { LocationOutlineIcon } from '@vapor-ui/icons'` |
| `LockOutlineIcon` | `import { LockOutlineIcon } from '@vapor-ui/icons'` |
| `LongTextOutlineIcon` | `import { LongTextOutlineIcon } from '@vapor-ui/icons'` |
| `MagicWandOutlineIcon` | `import { MagicWandOutlineIcon } from '@vapor-ui/icons'` |
| `MailOutlineIcon` | `import { MailOutlineIcon } from '@vapor-ui/icons'` |
| `ManagementOutlineIcon` | `import { ManagementOutlineIcon } from '@vapor-ui/icons'` |
| `MarkModeOutlineIcon` | `import { MarkModeOutlineIcon } from '@vapor-ui/icons'` |
| `MarkdownOutlineIcon` | `import { MarkdownOutlineIcon } from '@vapor-ui/icons'` |
| `MemoOutlineIcon` | `import { MemoOutlineIcon } from '@vapor-ui/icons'` |
| `MenuOutlineIcon` | `import { MenuOutlineIcon } from '@vapor-ui/icons'` |
| `MergeUpOutlineIcon` | `import { MergeUpOutlineIcon } from '@vapor-ui/icons'` |
| `MessageOutlineIcon` | `import { MessageOutlineIcon } from '@vapor-ui/icons'` |
| `MethodOutlineIcon` | `import { MethodOutlineIcon } from '@vapor-ui/icons'` |
| `MicOffOutlineIcon` | `import { MicOffOutlineIcon } from '@vapor-ui/icons'` |
| `MicOnOutlineIcon` | `import { MicOnOutlineIcon } from '@vapor-ui/icons'` |
| `MinusBoxOutlineIcon` | `import { MinusBoxOutlineIcon } from '@vapor-ui/icons'` |
| `MinusOutlineIcon` | `import { MinusOutlineIcon } from '@vapor-ui/icons'` |
| `MoreCommonOutlineIcon` | `import { MoreCommonOutlineIcon } from '@vapor-ui/icons'` |
| `MovieOutlineIcon` | `import { MovieOutlineIcon } from '@vapor-ui/icons'` |
| `NetfficeOutlineIcon` | `import { NetfficeOutlineIcon } from '@vapor-ui/icons'` |
| `NetworkOutlineIcon` | `import { NetworkOutlineIcon } from '@vapor-ui/icons'` |
| `NextOutlineIcon` | `import { NextOutlineIcon } from '@vapor-ui/icons'` |
| `NoImageOutlineIcon` | `import { NoImageOutlineIcon } from '@vapor-ui/icons'` |
| `NoUserOutlineIcon` | `import { NoUserOutlineIcon } from '@vapor-ui/icons'` |
| `NoticeBoardOutlineIcon` | `import { NoticeBoardOutlineIcon } from '@vapor-ui/icons'` |
| `NoticeCircleOutlineIcon` | `import { NoticeCircleOutlineIcon } from '@vapor-ui/icons'` |
| `NumberlistOutlineIcon` | `import { NumberlistOutlineIcon } from '@vapor-ui/icons'` |
| `OpenFileOutlineIcon` | `import { OpenFileOutlineIcon } from '@vapor-ui/icons'` |
| `OpenFolderOutlineIcon` | `import { OpenFolderOutlineIcon } from '@vapor-ui/icons'` |
| `OpenInNewOutlineIcon` | `import { OpenInNewOutlineIcon } from '@vapor-ui/icons'` |
| `OutOutlineIcon` | `import { OutOutlineIcon } from '@vapor-ui/icons'` |
| `PandasOutlineIcon` | `import { PandasOutlineIcon } from '@vapor-ui/icons'` |
| `PanelOpenOutlineIcon` | `import { PanelOpenOutlineIcon } from '@vapor-ui/icons'` |
| `PauseOutlineIcon` | `import { PauseOutlineIcon } from '@vapor-ui/icons'` |
| `PcOutlineIcon` | `import { PcOutlineIcon } from '@vapor-ui/icons'` |
| `PdfOutlineIcon` | `import { PdfOutlineIcon } from '@vapor-ui/icons'` |
| `PhoneOutlineIcon` | `import { PhoneOutlineIcon } from '@vapor-ui/icons'` |
| `PinSetOutlineIcon` | `import { PinSetOutlineIcon } from '@vapor-ui/icons'` |
| `PlansOutlineIcon` | `import { PlansOutlineIcon } from '@vapor-ui/icons'` |
| `PlayOutlineIcon` | `import { PlayOutlineIcon } from '@vapor-ui/icons'` |
| `PlaylistOutlineIcon` | `import { PlaylistOutlineIcon } from '@vapor-ui/icons'` |
| `PlusBoxOutlineIcon` | `import { PlusBoxOutlineIcon } from '@vapor-ui/icons'` |
| `PlusOutlineIcon` | `import { PlusOutlineIcon } from '@vapor-ui/icons'` |
| `PortforwardingOutlineIcon` | `import { PortforwardingOutlineIcon } from '@vapor-ui/icons'` |
| `PreOutlineIcon` | `import { PreOutlineIcon } from '@vapor-ui/icons'` |
| `PresentScreenOutlineIcon` | `import { PresentScreenOutlineIcon } from '@vapor-ui/icons'` |
| `PresetOutlineIcon` | `import { PresetOutlineIcon } from '@vapor-ui/icons'` |
| `PreviewOutlineIcon` | `import { PreviewOutlineIcon } from '@vapor-ui/icons'` |
| `PriceOutlineIcon` | `import { PriceOutlineIcon } from '@vapor-ui/icons'` |
| `PrintOutlineIcon` | `import { PrintOutlineIcon } from '@vapor-ui/icons'` |
| `ProgrammingOutlineIcon` | `import { ProgrammingOutlineIcon } from '@vapor-ui/icons'` |
| `ProjectOutlineIcon` | `import { ProjectOutlineIcon } from '@vapor-ui/icons'` |
| `ProjectSettingOutlineIcon` | `import { ProjectSettingOutlineIcon } from '@vapor-ui/icons'` |
| `PsychologyOutlineIcon` | `import { PsychologyOutlineIcon } from '@vapor-ui/icons'` |
| `PublishOutlineIcon` | `import { PublishOutlineIcon } from '@vapor-ui/icons'` |
| `PullOutlineIcon` | `import { PullOutlineIcon } from '@vapor-ui/icons'` |
| `QnAOutlineIcon` | `import { QnAOutlineIcon } from '@vapor-ui/icons'` |
| `QrcodeOutlineIcon` | `import { QrcodeOutlineIcon } from '@vapor-ui/icons'` |
| `QuoteOutlineIcon` | `import { QuoteOutlineIcon } from '@vapor-ui/icons'` |
| `ReferenceOutlineIcon` | `import { ReferenceOutlineIcon } from '@vapor-ui/icons'` |
| `RefreshOutlineIcon` | `import { RefreshOutlineIcon } from '@vapor-ui/icons'` |
| `RegexOutlineIcon` | `import { RegexOutlineIcon } from '@vapor-ui/icons'` |
| `ReloadOutlineIcon` | `import { ReloadOutlineIcon } from '@vapor-ui/icons'` |
| `RemoteOffOutlineIcon` | `import { RemoteOffOutlineIcon } from '@vapor-ui/icons'` |
| `RemoteOutlineIcon` | `import { RemoteOutlineIcon } from '@vapor-ui/icons'` |
| `ReplyOutlineIcon` | `import { ReplyOutlineIcon } from '@vapor-ui/icons'` |
| `RestaurantOutlineIcon` | `import { RestaurantOutlineIcon } from '@vapor-ui/icons'` |
| `ResultManagementOutlineIcon` | `import { ResultManagementOutlineIcon } from '@vapor-ui/icons'` |
| `RouteOutlineIcon` | `import { RouteOutlineIcon } from '@vapor-ui/icons'` |
| `RunOutlineIcon` | `import { RunOutlineIcon } from '@vapor-ui/icons'` |
| `SaveAsOutlineIcon` | `import { SaveAsOutlineIcon } from '@vapor-ui/icons'` |
| `SaveOutlineIcon` | `import { SaveOutlineIcon } from '@vapor-ui/icons'` |
| `SavingOutlineIcon` | `import { SavingOutlineIcon } from '@vapor-ui/icons'` |
| `SchoolOutlineIcon` | `import { SchoolOutlineIcon } from '@vapor-ui/icons'` |
| `SearchOutlineIcon` | `import { SearchOutlineIcon } from '@vapor-ui/icons'` |
| `SendOutlineIcon` | `import { SendOutlineIcon } from '@vapor-ui/icons'` |
| `SettingOutlineIcon` | `import { SettingOutlineIcon } from '@vapor-ui/icons'` |
| `ShareOutlineIcon` | `import { ShareOutlineIcon } from '@vapor-ui/icons'` |
| `ShoppingCartOutlineIcon` | `import { ShoppingCartOutlineIcon } from '@vapor-ui/icons'` |
| `ShortTextOutlineIcon` | `import { ShortTextOutlineIcon } from '@vapor-ui/icons'` |
| `ShortcutOutlineIcon` | `import { ShortcutOutlineIcon } from '@vapor-ui/icons'` |
| `SideNavOutlineIcon` | `import { SideNavOutlineIcon } from '@vapor-ui/icons'` |
| `SignalPowerOutlineIcon` | `import { SignalPowerOutlineIcon } from '@vapor-ui/icons'` |
| `SlashOutlineIcon` | `import { SlashOutlineIcon } from '@vapor-ui/icons'` |
| `SoundOffOutlineIcon` | `import { SoundOffOutlineIcon } from '@vapor-ui/icons'` |
| `SoundOnOutlineIcon` | `import { SoundOnOutlineIcon } from '@vapor-ui/icons'` |
| `SpinnerOutlineIcon` | `import { SpinnerOutlineIcon } from '@vapor-ui/icons'` |
| `SplitHorizontalOutlineIcon` | `import { SplitHorizontalOutlineIcon } from '@vapor-ui/icons'` |
| `SplitVerticalOutlineIcon` | `import { SplitVerticalOutlineIcon } from '@vapor-ui/icons'` |
| `StarOutlineIcon` | `import { StarOutlineIcon } from '@vapor-ui/icons'` |
| `StepInOutlineIcon` | `import { StepInOutlineIcon } from '@vapor-ui/icons'` |
| `StepOutOutlineIcon` | `import { StepOutOutlineIcon } from '@vapor-ui/icons'` |
| `StepOverOutlineIcon` | `import { StepOverOutlineIcon } from '@vapor-ui/icons'` |
| `StopOutlineIcon` | `import { StopOutlineIcon } from '@vapor-ui/icons'` |
| `StrikeOutlineIcon` | `import { StrikeOutlineIcon } from '@vapor-ui/icons'` |
| `StruckOutlineIcon` | `import { StruckOutlineIcon } from '@vapor-ui/icons'` |
| `StudentManagementOutlineIcon` | `import { StudentManagementOutlineIcon } from '@vapor-ui/icons'` |
| `SyllabusOutlineIcon` | `import { SyllabusOutlineIcon } from '@vapor-ui/icons'` |
| `TableFilterOutlineIcon` | `import { TableFilterOutlineIcon } from '@vapor-ui/icons'` |
| `TableOutlineIcon` | `import { TableOutlineIcon } from '@vapor-ui/icons'` |
| `TabletOutlineIcon` | `import { TabletOutlineIcon } from '@vapor-ui/icons'` |
| `TerminalConnectOutlineIcon` | `import { TerminalConnectOutlineIcon } from '@vapor-ui/icons'` |
| `TerminalOutlineIcon` | `import { TerminalOutlineIcon } from '@vapor-ui/icons'` |
| `TerminalWindowOutlineIcon` | `import { TerminalWindowOutlineIcon } from '@vapor-ui/icons'` |
| `TestOutlineIcon` | `import { TestOutlineIcon } from '@vapor-ui/icons'` |
| `TextColorOutlineIcon` | `import { TextColorOutlineIcon } from '@vapor-ui/icons'` |
| `TextOutlineIcon` | `import { TextOutlineIcon } from '@vapor-ui/icons'` |
| `TextScanOutlineIcon` | `import { TextScanOutlineIcon } from '@vapor-ui/icons'` |
| `TimeOutlineIcon` | `import { TimeOutlineIcon } from '@vapor-ui/icons'` |
| `TransferOutlineIcon` | `import { TransferOutlineIcon } from '@vapor-ui/icons'` |
| `TranslateOutlineIcon` | `import { TranslateOutlineIcon } from '@vapor-ui/icons'` |
| `TrashOutlineIcon` | `import { TrashOutlineIcon } from '@vapor-ui/icons'` |
| `UnderlineOutlineIcon` | `import { UnderlineOutlineIcon } from '@vapor-ui/icons'` |
| `UndoOutlineIcon` | `import { UndoOutlineIcon } from '@vapor-ui/icons'` |
| `UnlockOutlineIcon` | `import { UnlockOutlineIcon } from '@vapor-ui/icons'` |
| `UploadOutlineIcon` | `import { UploadOutlineIcon } from '@vapor-ui/icons'` |
| `UserCheckOutlineIcon` | `import { UserCheckOutlineIcon } from '@vapor-ui/icons'` |
| `UserMoveOutlineIcon` | `import { UserMoveOutlineIcon } from '@vapor-ui/icons'` |
| `UserOutlineIcon` | `import { UserOutlineIcon } from '@vapor-ui/icons'` |
| `UserSearchOutlineIcon` | `import { UserSearchOutlineIcon } from '@vapor-ui/icons'` |
| `VideocamOffOutlineIcon` | `import { VideocamOffOutlineIcon } from '@vapor-ui/icons'` |
| `VideocamOnOutlineIcon` | `import { VideocamOnOutlineIcon } from '@vapor-ui/icons'` |
| `ViewExpandOutlineIcon` | `import { ViewExpandOutlineIcon } from '@vapor-ui/icons'` |
| `ViewModuleOutlineIcon` | `import { ViewModuleOutlineIcon } from '@vapor-ui/icons'` |
| `ViewOffOutlineIcon` | `import { ViewOffOutlineIcon } from '@vapor-ui/icons'` |
| `ViewOnOutlineIcon` | `import { ViewOnOutlineIcon } from '@vapor-ui/icons'` |
| `ViewShrinkOutlineIcon` | `import { ViewShrinkOutlineIcon } from '@vapor-ui/icons'` |
| `WarningOutlineIcon` | `import { WarningOutlineIcon } from '@vapor-ui/icons'` |
| `WordSearchOutlineIcon` | `import { WordSearchOutlineIcon } from '@vapor-ui/icons'` |
| `ZoomInOutlineIcon` | `import { ZoomInOutlineIcon } from '@vapor-ui/icons'` |
| `ZoomOutOutlineIcon` | `import { ZoomOutOutlineIcon } from '@vapor-ui/icons'` |
---
version: 1.0.0-beta.6
---
# Welcome, Vapor UI
URL: /docs
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/index.mdx
Vapor는 구름의 세 번째 디자인 시스템으로, 다양한 서브 패키지들로 구성되어 있습니다. 각 서브 패키지는 다음과 같은 역할을 수행합니다.
***
title: Welcome, Vapor UI
description: Vapor는 구름의 세 번째 디자인 시스템으로, 다양한 서브 패키지들로 구성되어 있습니다. 각 서브 패키지는 다음과 같은 역할을 수행합니다.
-------------------------------------------------------------------------------------------
---
version: 1.0.0-beta.6
---
# Avatar
URL: /docs/components/avatar
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/avatar.mdx
Avatar는 사용자가 설정한 프로필 이미지 혹은 텍스트를 UI상에 나타냅니다.
***
title: 'Avatar'
site\_name: 'Avatar - Vapor Core'
description: 'Avatar는 사용자가 설정한 프로필 이미지 혹은 텍스트를 UI상에 나타냅니다.'
-----------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/avatar/default-avatar.tsx",
"codeblock": true
}
```
## Property
***
### Size
Avatar의 크기를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/avatar/avatar-size.tsx",
"codeblock": true
}
```
### Shape
Avatar의 모양을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/avatar/avatar-shape.tsx",
"codeblock": true
}
```
## Examples
***
### Composition Pattern
Avatar 컴포넌트의 다양한 구성 패턴입니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/avatar/flexible.tsx",
"codeblock": true
}
```
### Fallback Only
이미지 없이 대체 텍스트만 표시합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/avatar/avatar-fallback-only.tsx",
"codeblock": true
}
```
## Props Table
***
### Avatar.Root
| Prop | Type | Default | Description |
| ----------- | ------------------------------------ | -------- | ---------------------------------------------------------------------------------------------- |
| `size` | `sm`, `md`, `lg`, `xl` | `md` | 아바타 크기 |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| **alt** | `string` | - | 대체 텍스트, 폴백 이니셜 생성에도 사용 |
| `shape` | `circle`, `square` | `square` | 아바타 모서리 형태 |
| `src` | `string` | - | 이미지 소스 URL |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `delay` | `number` | - | 폴백 표시 전 지연 시간 (밀리초) |
#### Avatar.ImagePrimitive
| Prop | Type | Default | Description |
| ----------------------- | -------------------------------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `onLoadingStatusChange` | `(status: ImageLoadingStatus) => void` | - | 로딩 상태가 변경될 때 호출되는 콜백 |
#### Avatar.FallbackPrimitive
| Prop | Type | Default | Description |
| ----------- | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
---
version: 1.0.0-beta.6
---
# Badge
URL: /docs/components/badge
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/badge.mdx
Badge는 이미지, 컨텐츠 등의 상태 또는 분류를 시각적으로 표시합니다.
***
title: 'Badge'
site\_name: 'Badge - Vapor Core'
description: 'Badge는 이미지, 컨텐츠 등의 상태 또는 분류를 시각적으로 표시합니다.'
--------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/badge/default-badge.tsx",
"codeblock": true
}
```
## Property
***
### ColorPalette
Badge의 색상을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/badge/badge-color.tsx",
"codeblock": true
}
```
### Shape
Badge의 모양을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/badge/badge-shape.tsx",
"codeblock": true
}
```
### Size
Badge의 크기를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/badge/badge-size.tsx",
"codeblock": true
}
```
## Props Table
***
### Badge
| Prop | Type | Default | Description |
| -------------- | ------------------------------------------------------------- | --------- | ---------------------------------------------------------------------------------------------- |
| `size` | `sm`, `md`, `lg` | `md` | 뱃지 크기 |
| `shape` | `square`, `pill` | `square` | 뱃지 모서리 형태 |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `colorPalette` | `primary`, `success`, `warning`, `danger`, `hint`, `contrast` | `primary` | 뱃지 색상 |
---
version: 1.0.0-beta.6
---
# Breadcrumb
URL: /docs/components/breadcrumb
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/breadcrumb.mdx
사용자가 현재 페이지의 위치를 파악하고 이전 페이지로 쉽게 이동할 수 있도록 도와주는 네비게이션 컴포넌트입니다.
***
title: 'Breadcrumb'
site\_name: 'Breadcrumb - Vapor Core'
description: '사용자가 현재 페이지의 위치를 파악하고 이전 페이지로 쉽게 이동할 수 있도록 도와주는 네비게이션 컴포넌트입니다.'
-----------------------------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/breadcrumb/default-breadcrumb.tsx",
"codeblock": true
}
```
## Property
***
### Size
Breadcrumb 사이즈는 sm, md, lg, xl 로 제공합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/breadcrumb/breadcrumb-size.tsx",
"codeblock": true
}
```
### Current
현재 페이지를 나타내는 링크의 상태를 설정할 수 있습니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/breadcrumb/breadcrumb-current.tsx",
"codeblock": true
}
```
## Examples
***
### With Ellipsis
긴 네비게이션 경로에서 중간 단계를 생략 표시로 나타낸 패턴입니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/breadcrumb/breadcrumb-ellipsis.tsx",
"codeblock": true
}
```
### Composition Pattern
Breadcrumb 컴포넌트의 다양한 구성 패턴입니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/breadcrumb/breadcrumb-composition.tsx",
"codeblock": true
}
```
## Props Table
***
### Breadcrumb.Root
| Prop | Type | Default | Description |
| -------- | ---------------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `size` | `sm`, `md`, `lg`, `xl` | `md` | 브레드크럼 크기 |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
#### Breadcrumb.RootPrimitive
| Prop | Type | Default | Description |
| -------- | ---------------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `size` | `sm`, `md`, `lg`, `xl` | `md` | 브레드크럼 크기 |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
#### Breadcrumb.ListPrimitive
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Breadcrumb.Item
| Prop | Type | Default | Description |
| --------- | --------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `current` | `false`, `true` | - | 현재 페이지 여부 |
#### Breadcrumb.ItemPrimitive
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
#### Breadcrumb.LinkPrimitive
| Prop | Type | Default | Description |
| --------- | --------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `current` | `false`, `true` | `false` | 현재 페이지 여부 |
### Breadcrumb.Separator
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Breadcrumb.Ellipsis
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
#### Breadcrumb.EllipsisPrimitive
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
---
version: 1.0.0-beta.6
---
# Button
URL: /docs/components/button
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/button.mdx
Button은 사용자가 주요 작업을 수행하도록 돕는 핵심 상호작용 요소입니다.
***
title: 'Button'
site\_name: 'Button - Vapor Core'
description: 'Button은 사용자가 주요 작업을 수행하도록 돕는 핵심 상호작용 요소입니다.'
----------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/button/default-button.tsx",
"codeblock": true
}
```
## Property
***
### ColorPalette
Button의 역할에 따른 색상을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/button/button-color.tsx",
"codeblock": true
}
```
### Size
Button의 크기를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/button/button-size.tsx",
"codeblock": true
}
```
### Variant
Button의 시각적 다양성을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/button/button-variant.tsx",
"codeblock": true
}
```
### Disabled
Button의 비활성화 상태를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/button/button-disabled.tsx",
"codeblock": true
}
```
## Examples
***
### Button with Icon
Button의 역할을 직관적으로 표현하기 위해 아이콘과 함께 사용합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/button/button-with-icon.tsx",
"codeblock": true
}
```
## Props Table
***
### Button
| Prop | Type | Default | Description |
| -------------- | ------------------------------------------------------------------ | --------- | ---------------------------------------------------------------------------------------------- |
| `size` | `sm`, `md`, `lg`, `xl` | `md` | 버튼 크기 |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `colorPalette` | `primary`, `secondary`, `success`, `warning`, `danger`, `contrast` | `primary` | 버튼 색상 |
| `variant` | `outline`, `fill`, `ghost` | `fill` | 버튼 스타일 (fill: 채움, outline: 테두리, ghost: 투명) |
---
version: 1.0.0-beta.6
---
# Callout
URL: /docs/components/callout
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/callout.mdx
Callout은 중요한 정보를 시각적으로 강조하여 사용자에게 전달하는 메시지 컴포넌트입니다.
***
title: 'Callout'
site\_name: 'Callout - Vapor Core'
description: 'Callout은 중요한 정보를 시각적으로 강조하여 사용자에게 전달하는 메시지 컴포넌트입니다.'
------------------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/callout/default-callout.tsx",
"codeblock": true
}
```
## Property
***
### ColorPalette
Callout의 역할에 따른 색상을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/callout/callout-color.tsx",
"codeblock": true
}
```
## Examples
***
### Callout with Icon
Callout의 역할을 직관적으로 표현하기 위해 아이콘과 함께 사용합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/callout/callout-with-icon.tsx",
"codeblock": true
}
```
## Props Table
***
### Callout.Root
| Prop | Type | Default | Description |
| -------------- | ------------------------------------------------------------- | --------- | --------------------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 엘리먼트를 다른 태그로 교체하거나 다른 컴포넌트와 조합할 수 있습니다.
`ReactElement` 또는 렌더링할 엘리먼트를 반환하는 함수를 받습니다. |
| `colorPalette` | `primary`, `success`, `warning`, `danger`, `hint`, `contrast` | `primary` | 색상 스킴을 제어합니다 |
### Callout.Icon
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | --------------------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 엘리먼트를 다른 태그로 교체하거나 다른 컴포넌트와 조합할 수 있습니다.
`ReactElement` 또는 렌더링할 엘리먼트를 반환하는 함수를 받습니다. |
---
version: 1.0.0-beta.6
---
# Card
URL: /docs/components/card
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/card.mdx
Card는 이미지와 텍스트, 일부 기능 버튼을 포함한 컨테이너로 콘텐츠를 제공합니다.
***
title: 'Card'
site\_name: 'Card - Vapor Core'
description: 'Card는 이미지와 텍스트, 일부 기능 버튼을 포함한 컨테이너로 콘텐츠를 제공합니다.'
--------------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/card/default-card.tsx",
"codeblock": true
}
```
## Examples
***
### Layout
상황에 따라, 일부 영역을 생략하여 Card를 구성할 수 있습니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/card/card-layout.tsx",
"codeblock": true
}
```
### Within Form
`
` 컴포넌트와 함께 사용하여 관련된 필드를 그룹화할 수 있습니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/card/card-basic.tsx",
"codeblock": true
}
```
## Props Table
***
### Card.Root
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Card.Header
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Card.Body
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Card.Footer
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
---
version: 1.0.0-beta.6
---
# Checkbox
URL: /docs/components/checkbox
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/checkbox.mdx
Checkbox는 여러 항목 중 복수 선택을 가능하게 하는 입력 컴포넌트입니다.
***
title: 'Checkbox'
site\_name: 'Checkbox - Vapor Core'
description: 'Checkbox는 여러 항목 중 복수 선택을 가능하게 하는 입력 컴포넌트입니다.'
-----------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/checkbox/default-checkbox.tsx",
"codeblock": true
}
```
## Property
***
### Size
Checkbox의 크기를 결정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/checkbox/checkbox-size.tsx",
"codeblock": true
}
```
### Disabled
Checkbox의 비활성화 상태를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/checkbox/checkbox-disabled.tsx",
"codeblock": true
}
```
### Invalid
Checkbox의 유효하지 않음 상태를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/checkbox/checkbox-invalid.tsx",
"codeblock": true
}
```
### Indeterminate
Checkbox의 혼합 상태 여부를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/checkbox/checkbox-indeterminate.tsx",
"codeblock": true
}
```
### Read Only
Checkbox의 읽기 전용 상태를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/checkbox/checkbox-readonly.tsx",
"codeblock": true
}
```
## Props Table
***
### Checkbox.Root
| Prop | Type | Default | Description |
| ----------------- | ------------------------------------------------------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------- |
| `size` | `md`, `lg` | `md` | 체크박스 크기 |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `id` | `string` | - | input 요소의 고유 식별자 |
| `name` | `string` | `undefined` | 폼 제출 시 필드를 식별하는 이름 |
| `defaultChecked` | `false`, `true` | `false` | 초기 상태에서 체크박스가 선택되었는지 여부
제어되는 체크박스를 렌더링하려면 대신 `checked` 속성을 사용하십시오. |
| `disabled` | `false`, `true` | `false` | 사용자 상호작용을 비활성화할지 여부 |
| `value` | `string` | - | 폼 제출 시 체크박스의 값 |
| `checked` | `false`, `true` | `undefined` | 체크박스가 현재 선택되었는지 여부
제어되지 않는 체크박스를 렌더링하려면 대신 `defaultChecked` 프로퍼티를 사용하십시오. |
| `readOnly` | `false`, `true` | `false` | 사용자가 체크박스를 선택하거나 선택 해제하지 못하도록 할지 여부 |
| `required` | `false`, `true` | `false` | 사용자가 폼을 제출하기 전에 체크박스를 선택해야 하는지 여부 |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `onCheckedChange` | `(checked: boolean, eventDetails: Checkbox.Root.ChangeEventDetails) => void` | - | 체크박스가 선택되거나 해제될 때 호출되는 이벤트 핸들러 |
| `indeterminate` | `false`, `true` | `false` | 체크박스가 indeterminate 상태인지 여부: 선택되었거나 선택되지 않음. |
| `inputRef` | `null`, `(instance: HTMLInputElement \| null) => void`, `RefObject` | - | 숨겨진 `<input>` 요소에 접근하기 위한 ref |
| `parent` | `false`, `true` | `false` | 체크박스가 하위 체크박스 그룹을 제어하는지 여부
[Checkbox Group](https://base-ui.com/react/components/checkbox-group)에서 사용해야 합니다. |
| `nativeButton` | `false`, `true` | `true` | render prop으로 교체할 때 네이티브 `<button>` 요소를 렌더링할지 여부 렌더링되는 요소가 버튼이 아닌 경우(예: `<div>`) `false`로 설정하세요. |
| `invalid` | `false`, `true` | `false` | 유효성 검사 실패 상태 |
### Checkbox.IndicatorPrimitive
| Prop | Type | Default | Description |
| ------------- | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `keepMounted` | `false`, `true` | `false` | 체크박스가 선택되지 않은 경우에도 Indicator를 DOM에 유지할지 여부 |
---
version: 1.0.0-beta.6
---
# Collapsible
URL: /docs/components/collapsible
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/collapsible.mdx
Collapsible은 콘텐츠를 접었다 펼칠 수 있는 대화형 컴포넌트입니다. 아코디언이나 확장 가능한 섹션을 구현할 때 사용합니다.
***
title: 'Collapsible'
site\_name: 'Collapsible - Vapor Core'
description: 'Collapsible은 콘텐츠를 접었다 펼칠 수 있는 대화형 컴포넌트입니다. 아코디언이나 확장 가능한 섹션을 구현할 때 사용합니다.'
----------------------------------------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/collapsible/default-collapsible.tsx",
"codeblock": true
}
```
## Property
***
### Open State
Collapsible의 열림/닫힘 상태를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/collapsible/collapsible-open-state.tsx",
"codeblock": true
}
```
### Keep Mounted
패널이 닫힌 상태에서도 DOM에 유지합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/collapsible/collapsible-keep-mounted.tsx",
"codeblock": true
}
```
### Disabled
Collapsible의 비활성화 상태를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/collapsible/collapsible-disabled.tsx",
"codeblock": true
}
```
## Props Table
***
### Collapsible.Root
| Prop | Type | Default | Description |
| -------------- | ---------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `disabled` | `false`, `true` | `false` | 사용자 상호작용을 비활성화할지 여부 |
| `open` | `false`, `true` | - | collapsible 패널의 현재 열림 상태
비제어 컴포넌트로 사용하려면 `defaultOpen` prop을 사용하세요. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `defaultOpen` | `false`, `true` | `false` | collapsible 패널의 초기 열림 상태 (비제어 컴포넌트)
제어 컴포넌트로 사용하려면 `open` prop을 사용하세요. |
| `onOpenChange` | `(open: boolean, eventDetails: Collapsible.Root.ChangeEventDetails) => void` | - | 패널이 열리거나 닫힐 때 호출되는 이벤트 핸들러 |
### Collapsible.Trigger
| Prop | Type | Default | Description |
| -------------- | ------------------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `nativeButton` | `false`, `true` | `true` | render prop으로 교체할 때 네이티브 `<button>` 요소를 렌더링할지 여부 렌더링되는 요소가 버튼이 아닌 경우(예: `<div>`) `false`로 설정하세요. |
### Collapsible.Panel
| Prop | Type | Default | Description |
| ------------------ | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `hiddenUntilFound` | `false`, `true` | `false` | 체크박스가 현재 선택되었는지 여부
제어되지 않는 체크박스를 렌더링하려면 대신 `defaultChecked` 프로퍼티를 사용하십시오 |
| `keepMounted` | `false`, `true` | `false` | 요소가 숨겨져 있는 동안 DOM에 유지할지 여부입니다. 이 속성은 `hiddenUntilFound`가 사용될 때 무시됩니다. |
---
version: 1.0.0-beta.6
---
# Dialog
URL: /docs/components/dialog
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/dialog.mdx
Dialog는 페이지 위에 모달 형태로 정보를 표시하거나 작업을 수행하도록 하는 컴포넌트입니다.
***
title: 'Dialog'
site\_name: 'Dialog - Vapor Core'
description: 'Dialog는 페이지 위에 모달 형태로 정보를 표시하거나 작업을 수행하도록 하는 컴포넌트입니다.'
--------------------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/dialog/default-dialog.tsx",
"codeblock": true
}
```
## Property
***
### Size
Dialog의 크기를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/dialog/dialog-size.tsx",
"codeblock": true
}
```
### Modal Behavior
Dialog의 모달 동작을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/dialog/dialog-modal.tsx",
"codeblock": true
}
```
## Examples
***
### Custom Usage
Dialog 컴포넌트의 다양한 구성 패턴입니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/dialog/flexible.tsx",
"codeblock": true
}
```
## Props Table
***
### Dialog.Root
| Prop | Type | Default | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `children` | `null`, `string`, `number`, `false`, `true`, `ReactElement`, `Iterable`, `ReactPortal` | - | |
| `open` | `false`, `true` | - | Dialog가 현재 열려 있는지 여부. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `defaultOpen` | `false`, `true` | `false` | Dialog가 처음에 열려 있는지 여부입니다.
제어되는 Dialog를 렌더링하려면 대신 `open` prop을 사용하세요. |
| `modal` | `false`, `true`, `trap-focus` | `true` | 대화 상자를 열었을 때 모드 상태로 전환되는지 여부를 결정합니다. - 'true': 사용자 상호작용은 대화 상자에만 제한됩니다: 포커스가 갇히고, 문서 페이지 스크롤이 잠기고, 외부 요소의 포인터 상호작용이 비활성화됩니다. - 'false': 문서의 나머지 부분과의 사용자 상호작용이 허용됩니다. - 'trap 포커스': 포커스는 대화 상자 안에 갇혀 있지만, 문서 페이지 스크롤은 잠겨 있지 않고 외부의 포인터 상호작용은 활성화된 상태로 유지됩니다. |
| `onOpenChange` | `(open: boolean, eventDetails: Dialog.Root.ChangeEventDetails) => void` | - | 대화 상자를 열거나 닫을 때 호출되는 이벤트 핸들러입니다. |
| `onOpenChangeComplete` | `(open: boolean) => void` | - | 대화 상자가 열리거나 닫힐 때 애니메이션이 완료된 후 호출되는 이벤트 핸들러입니다. |
| `actionsRef` | `RefObject` | - | 명령적 행동에 대한 참조. - '언마운트': 지정하면 대화 상자를 닫았을 때 언마운트되지 않습니다. 대신, '언마운트' 기능을 호출하여 수동으로 대화 상자를 언마운트해야 합니다. 대화 상자의 애니메이션이 외부 라이브러리에 의해 제어될 때 유용합니다. |
| `size` | `md`, `lg`, `xl` | `md` | Dialog 크기 |
### Dialog.Popup
| Prop | Type | Default | Description |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `initialFocus` | `false`, `true`, `RefObject`, `(openType: InteractionType) => boolean \| void \| HTMLElement \| null` | - | 대화 상자를 열 때 집중할 요소를 결정합니다. - 'false': 초점을 움직이지 마세요. - 'true': 기본 동작(첫 번째 탭 가능 요소 또는 팝업)에 따라 초점을 이동합니다. - 'RefObject': 초점을 참조 요소로 이동합니다. - 'function': 상호작용 유형('마우스', '터치', '펜' 또는 '키보드')으로 호출됩니다. 요소를 초점 맞추기 위해 'true'을, 기본 동작을 사용하기 위해 'true'을, 아무것도 하지 않기 위해 'false'/'undefined'을 반환합니다. |
| `finalFocus` | `false`, `true`, `RefObject`, `(closeType: InteractionType) => boolean \| void \| HTMLElement \| null` | - | 대화 상자를 닫을 때 집중할 요소를 결정합니다. - 'false': 초점을 움직이지 마세요. - 'true': 기본 동작(트리거 또는 이전에 집중된 요소)에 따라 초점을 이동합니다. - 'RefObject': 초점을 참조 요소로 이동합니다. - 'function': 상호작용 유형('마우스', '터치', '펜' 또는 '키보드')으로 호출됩니다. 요소를 초점 맞추기 위해 'true'을, 기본 동작을 사용하기 위해 'true'을, 아무것도 하지 않기 위해 'false'/'undefined'을 반환합니다. |
| `portalElement` | `ReactElement` | - | |
| `overlayElement` | `ReactElement` | - | |
#### Dialog.PortalPrimitive
| Prop | Type | Default | Description |
| ------------- | ------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `children` | `null`, `string`, `number`, `false`, `true`, `ReactElement`, `Iterable`, `ReactPortal` | - | |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `container` | `null`, `HTMLElement`, `ShadowRoot`, `RefObject` | - | 포털 요소를 렌더링할 상위 요소입니다. |
| `keepMounted` | `false`, `true` | `false` | 포털이 숨겨져 있는 동안 DOM에 유지할지 여부입니다. |
#### Dialog.OverlayPrimitive
| Prop | Type | Default | Description |
| ------------- | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `forceRender` | `false`, `true` | `false` | 중첩되어 있을 때도 백드롭이 강제로 렌더링되는지 여부입니다. |
#### Dialog.PopupPrimitive
| Prop | Type | Default | Description |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `initialFocus` | `false`, `true`, `RefObject`, `(openType: InteractionType) => boolean \| void \| HTMLElement \| null` | - | 대화 상자를 열 때 집중할 요소를 결정합니다. - 'false': 초점을 움직이지 마세요. - 'true': 기본 동작(첫 번째 탭 가능 요소 또는 팝업)에 따라 초점을 이동합니다. - 'RefObject': 초점을 참조 요소로 이동합니다. - 'function': 상호작용 유형('마우스', '터치', '펜' 또는 '키보드')으로 호출됩니다. 요소를 초점 맞추기 위해 'true'을, 기본 동작을 사용하기 위해 'true'을, 아무것도 하지 않기 위해 'false'/'undefined'을 반환합니다. |
| `finalFocus` | `false`, `true`, `RefObject`, `(closeType: InteractionType) => boolean \| void \| HTMLElement \| null` | - | 대화 상자를 닫을 때 집중할 요소를 결정합니다. - 'false': 초점을 움직이지 마세요. - 'true': 기본 동작(트리거 또는 이전에 집중된 요소)에 따라 초점을 이동합니다. - 'RefObject': 초점을 참조 요소로 이동합니다. - 'function': 상호작용 유형('마우스', '터치', '펜' 또는 '키보드')으로 호출됩니다. 요소를 초점 맞추기 위해 'true'을, 기본 동작을 사용하기 위해 'true'을, 아무것도 하지 않기 위해 'false'/'undefined'을 반환합니다. |
### Dialog.Trigger
| Prop | Type | Default | Description |
| -------------- | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `nativeButton` | `false`, `true` | `true` | 컴포넌트가 `render` 속성을 통해 대체될 때 네이티브 `<button>` 요소를 렌더링할지 여부입니다. 렌더링된 요소가 버튼이 아닌 경우(예: `<div>`) `false`로 설정하세요. |
### Dialog.Close
| Prop | Type | Default | Description |
| -------------- | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `nativeButton` | `false`, `true` | `true` | 컴포넌트가 `render` 속성을 통해 대체될 때 네이티브 `<button>` 요소를 렌더링할지 여부입니다. 렌더링된 요소가 버튼이 아닌 경우(예: `<div>`) `false`로 설정하세요. |
### Dialog.Title
| Prop | Type | Default | Description |
| ----------- | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Dialog.Description
| Prop | Type | Default | Description |
| ----------- | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Dialog.Header
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Dialog.Body
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Dialog.Footer
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
---
version: 1.0.0-beta.6
---
# Field
URL: /docs/components/field
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/field.mdx
Field는 폼 요소들을 감싸는 컨테이너 컴포넌트로, 라벨, 설명, 에러 메시지, 성공 메시지 등을 제공합니다.
***
title: Field
site\_name: Field - Vapor Core
description: Field는 폼 요소들을 감싸는 컨테이너 컴포넌트로, 라벨, 설명, 에러 메시지, 성공 메시지 등을 제공합니다.
---------------------------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/field/default-field.tsx",
"codeblock": true
}
```
## Property
***
### Invalid State
Field의 유효하지 않은 상태를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/field/field-invalid.tsx",
"codeblock": true
}
```
### Validation Mode
유효성 검사 타이밍을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/field/field-validation-mode.tsx",
"codeblock": true
}
```
## Examples
***
### With Description
Field에 대한 추가 설명을 표시합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/field/field-description.tsx",
"codeblock": true
}
```
### Validation
입력된 값에 대한 유효성을 검사합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/field/field-validation.tsx",
"codeblock": true
}
```
### Required
필수 Field와 선택 Field를 구분하여 표시합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/field/field-required.tsx",
"codeblock": true
}
```
### Disabled
disabled 속성을 사용하여 비활성화된 Field를 만들 수 있습니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/field/field-disabled.tsx",
"codeblock": true
}
```
### With RadioGroup
RadioGroup과 Field를 함께 사용합니다.
```tsx
'use client';
import { Field, Radio, RadioGroup } from '@vapor-ui/core';
export default function FieldRadioGroup() {
return (
성별
남성
여성
기타
개인정보 보호를 위해 선택사항입니다.
);
}
```
### With Form Elements
다양한 폼 요소(TextInput, Checkbox, Switch, Select 등)와 Field를 함께 사용합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/field/field-with-inputs.tsx",
"codeblock": true
}
```
### Controlled
제어 컴포넌트로 Field를 관리하고 실시간으로 상태를 표시합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/field/field-controlled.tsx",
"codeblock": true
}
```
## Props Table
***
### Field.Root
| Prop | Type | Default | Description |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `name` | `string` | - | 폼 제출 시 필드를 식별하는 이름 `<Field.Control>` 컴포넌트의 `name` prop보다 우선합니다. |
| `disabled` | `false`, `true` | `false` | 사용자 상호작용을 무시할지 여부 `<Field.Control>` 컴포넌트의 `disabled` prop보다 우선합니다. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `validate` | `(value: unknown, formValues: Record) => string \| string[] \| Promise \| null` | - | 커스텀 유효성 검사 함수 값이 유효하지 않으면 에러 메시지 문자열 또는 문자열 배열을 반환하고, 유효하면 `null`을 반환합니다. |
| `validationMode` | `onBlur`, `onChange` | `onBlur` | 필드 유효성 검사 시점
- **onBlur**: 컨트롤이 포커스를 잃을 때 검사 - **onChange**: 컨트롤 값이 변경될 때마다 검사 |
| `validationDebounceTime` | `number` | `0` | `validationMode="onChange"` 사용 시 `validate` 콜백 사이의 대기 시간 (밀리초) |
| `invalid` | `false`, `true` | - | 필드를 강제로 유효하지 않은 상태로 표시할지 여부 |
### Field.Label
| Prop | Type | Default | Description |
| ----------- | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Field.Description
| Prop | Type | Default | Description |
| ----------- | ------------------------------------ | ------- | ---------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Field.Error
| Prop | Type | Default | Description |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `match` | `false`, `true`, `badInput`, `customError`, `patternMismatch`, `rangeOverflow`, `rangeUnderflow`, `stepMismatch`, `tooLong`, `tooShort`, `typeMismatch`, `valueMissing` | - | 특정 유효성 검사 상태에 대한 오류 메시지를 표시할지 여부
- **false**: 모든 오류 메시지를 표시 - **true**: 모든 오류 메시지를 숨김 - **기타 문자열**: 해당 유효성 검사 상태에 대한 오류 메시지만 표시 |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### Field.Success
| Prop | Type | Default | Description |
| ----------- | ------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `match` | `false`, `true`, `valid` | - | 성공 메시지를 표시할지 여부
- **false**: 모든 성공 메시지를 표시 - **true**: 모든 성공 메시지를 숨김 - **valid**: 필드가 유효한 상태일 때만 성공 메시지를 표시 |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
---
version: 1.0.0-beta.6
---
# IconButton
URL: /docs/components/icon-button
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/icon-button.mdx
IconButton은 특정 작업이나 기능을 나타내며, 텍스트 없이 아이콘만으로 명령을 전달하는 버튼입니다.
***
title: 'IconButton'
site\_name: 'IconButton - Vapor Core'
description: 'IconButton은 특정 작업이나 기능을 나타내며, 텍스트 없이 아이콘만으로 명령을 전달하는 버튼입니다.'
--------------------------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/icon-button/default-icon-button.tsx",
"codeblock": true
}
```
## Property
***
### Size
IconButton의 크기를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/icon-button/icon-button-size.tsx",
"codeblock": true
}
```
### ColorPalette
IconButton의 색상을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/icon-button/icon-button-color.tsx",
"codeblock": true
}
```
### Variant
IconButton의 시각적 변형을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/icon-button/icon-button-variant.tsx",
"codeblock": true
}
```
### Shape
IconButton의 모양을 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/icon-button/icon-button-shape.tsx",
"codeblock": true
}
```
### Disabled
IconButton의 비활성화 상태를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/icon-button/icon-button-disabled.tsx",
"codeblock": true
}
```
## Props Table
***
### IconButton
| Prop | Type | Default | Description |
| -------------- | ------------------------------------------------------------------ | --------- | ---------------------------------------------------------------------------------------------- |
| `size` | `sm`, `md`, `lg`, `xl` | `md` | 버튼 크기 |
| `shape` | `circle`, `square` | `square` | 버튼 모양 |
| **aria-label** | `string` | - | 현재 요소의 레이블을 정의하는 문자열 값 |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `colorPalette` | `primary`, `secondary`, `success`, `warning`, `danger`, `contrast` | `primary` | 버튼 색상 |
| `variant` | `outline`, `fill`, `ghost` | `fill` | 버튼 스타일 (fill: 채움, outline: 테두리, ghost: 투명) |
---
version: 1.0.0-beta.6
---
# InputGroup
URL: /docs/components/input-group
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/input-group.mdx
InputGroup은 입력 필드(TextInput, Textarea)와 관련 요소들을 그룹화하여 문자 수 카운터와 같은 추가 기능을 제공합니다.
***
title: 'InputGroup'
site\_name: 'InputGroup - Vapor Core'
description: 'InputGroup은 입력 필드(TextInput, Textarea)와 관련 요소들을 그룹화하여 문자 수 카운터와 같은 추가 기능을 제공합니다.'
-----------------------------------------------------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/input-group/default-input-group.tsx",
"codeblock": true
}
```
## Examples
***
### Custom Counter
커스텀 카운터 UI를 구현합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/input-group/input-group-custom-counter.tsx",
"codeblock": true
}
```
## Props Table
***
### InputGroup.Root
| Prop | Type | Default | Description |
| -------- | -------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
### InputGroup.Counter
| Prop | Type | Default | Description |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------- |
| `children` | `null`, `string`, `number`, `false`, `true`, `ReactElement`, `Iterable`, `ReactPortal`, `(props: CounterRenderProps) => ReactNode` | - | |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
---
version: 1.0.0-beta.6
---
# Menu
URL: /docs/components/menu
Source: https://raw.githubusercontent.com/goorm-dev/vapor-ui/refs/heads/main/apps/website/content/docs/components/menu.mdx
드롭다운 Menu와 컨텍스트 Menu를 제공하는 컴포넌트입니다
***
title: 'Menu'
site\_name: 'Menu - Vapor Core'
description: '드롭다운 Menu와 컨텍스트 Menu를 제공하는 컴포넌트입니다'
-------------------------------------------------
```json doc-gen:file
{
"file": "./src/components/demo/examples/menu/default-menu.tsx",
"codeblock": true
}
```
## Property
***
### Disabled
Menu의 비활성화 상태를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/menu/menu-disabled.tsx",
"codeblock": true
}
```
## Examples
***
### Positioning
Menu의 표시 위치를 설정합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/menu/menu-positioning.tsx",
"codeblock": true
}
```
### Groups
Menu 아이템을 그룹화합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/menu/menu-groups.tsx",
"codeblock": true
}
```
### With Checkbox Items
Checkbox Item을 사용합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/menu/menu-checkbox.tsx",
"codeblock": true
}
```
### With Radio Items
Radio Item을 사용합니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/menu/menu-radio.tsx",
"codeblock": true
}
```
### With Submenu
Submenu를 구성할 수 있습니다.
```json doc-gen:file
{
"file": "./src/components/demo/examples/menu/menu-submenu.tsx",
"codeblock": true
}
```
## Props Table
***
### Menu.Root
| Prop | Type | Default | Description |
| ---------------------- | -------------------------------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `orientation` | `horizontal`, `vertical` | `vertical` | 메뉴의 시각적 방향입니다. 로빙 포커스가 위/아래 또는 왼쪽/오른쪽 화살표 키를 사용하는지 제어합니다. |
| **children** | `undefined`, `null`, `string`, `number`, `false`, `true`, `ReactElement`, `Iterable`, `ReactPortal` | - | |
| `loop` | `false`, `true` | `true` | 키보드 포커스를 첫 번째 항목으로 다시 루프할지 여부 화살표 키를 사용할 때 목록 끝에 도달하면. |
| `disabled` | `false`, `true` | `false` | 컴포넌트가 사용자 상호작용을 무시해야 하는지 여부입니다. |
| `open` | `false`, `true` | - | 메뉴가 현재 열려 있는지 여부입니다. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `defaultOpen` | `false`, `true` | `false` | 메뉴가 처음에 열려 있는지 여부입니다.
제어되는 메뉴를 렌더링하려면 대신 `open` 속성을 사용하세요. |
| `modal` | `false`, `true` | `true` | 메뉴가 열려 있을 때 모달 상태에 들어가는지 여부를 결정합니다. - `true`: 사용자 상호작용이 메뉴로 제한됩니다: 문서 페이지 스크롤이 잠기고 외부 요소에 대한 포인터 상호작용이 비활성화됩니다. - `false`: 문서의 나머지 부분과의 사용자 상호작용이 허용됩니다. |
| `onOpenChange` | `(open: boolean, eventDetails: ChangeEventDetails) => void` | - | 메뉴가 열리거나 닫힐 때 호출되는 이벤트 핸들러입니다. |
| `onOpenChangeComplete` | `(open: boolean) => void` | - | 메뉴가 닫힐 때 애니메이션이 완료된 후 호출되는 이벤트 핸들러입니다. |
| `closeParentOnEsc` | `false`, `true` | `true` | 하위 메뉴에 있을 때, Escape 키를 눌렀을 때 전체 메뉴를 닫을지 현재 하위 메뉴만 닫을지 결정합니다. |
| `delay` | `number` | `100` | 메뉴가 열리기 전에 기다리는 시간입니다. 지연 시간은 밀리초 단위로 지정됩니다.
`openOnHover` 속성이 필요합니다. |
| `closeDelay` | `number` | `0` | 마우스를 올려놓아 열린 메뉴를 닫기 전에 기다리는 시간입니다. 지연 시간은 밀리초 단위로 지정됩니다.
`openOnHover` 속성이 필요합니다. |
| `openOnHover` | `false`, `true` | - | 트리거에 마우스를 올려놓았을 때 메뉴도 열려야 하는지 여부입니다. |
| `actionsRef` | `RefObject` | - | 명령형 작업에 대한 ref입니다. - `unmount`: 지정된 경우, 메뉴가 닫힐 때 마운트 해제되지 않습니다. 대신, `unmount` 함수를 호출하여 메뉴를 수동으로 마운트 해제해야 합니다. 메뉴의 애니메이션이 외부 라이브러리에 의해 제어되는 경우에 유용합니다. |
### Menu.Trigger
| Prop | Type | Default | Description |
| -------------- | ------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------- |
| `className` | `string`, `(state: State) => string` | - | 요소에 적용된 CSS 클래스 또는 컴포넌트의 상태에 따라 클래스를 반환하는 함수. |
| `children` | `null`, `string`, `number`, `false`, `true`, `ReactElement`, `Iterable`, `ReactPortal` | - | |
| `disabled` | `false`, `true` | `false` | 구성 요소가 사용자 상호작용을 무시해야 하는지 여부. |
| `render` | `ReactElement` | - | 컴포넌트의 HTML 요소를 다른 태그로 대체하거나 다른 컴포넌트와 조합할 수 있습니다. 렌더링할 요소를 반환하는 `ReactElement` 또는 함수를 인수로 받습니다. |
| `nativeButton` | `false`, `true` | `true` | 구성 요소가 교체할 때 네이티브 '\