Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/jds/src/components/Code/Code.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const meta: Meta<typeof Code> = {
docs: {
description: {
component:
"인라인 코드는 문장 흐름 안에서 특정 키워드, 값, 명령어, 짧은 코드 조각을 시각적으로 구분하기 위한 텍스트 컴포넌트입니다. 주요 내용의 이해를 보조하는 용도로, 문장을 끊지 않고 맥락 속에서 코드를 인지할 수 있도록 합니다.",
"코드는 문장 흐름 안에서 키워드, 값, 명령어, 짧은 코드 조각을 시각적으로 구분하는 텍스트 컴포넌트입니다. 본문을 끊지 않고도 코드 요소를 맥락 속에서 인지하게 합니다. 설명 문맥을 유지하면서 특정 표현을 정확히 지목할 때 사용합니다.",
},
},
},
Expand Down
44 changes: 0 additions & 44 deletions packages/jds/src/components/Code/Code.styles.ts

This file was deleted.

23 changes: 14 additions & 9 deletions packages/jds/src/components/Code/Code.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
import { StyledCode } from "./Code.styles";
import type { CodeProps } from "./Code.types";
import { clsx } from "clsx";
import { forwardRef } from "react";

export const Code = ({ children, size = "md", className, ...restProps }: CodeProps) => {
return (
<StyledCode $size={size} className={className} {...restProps}>
{children}
</StyledCode>
);
};
import * as styles from "./code.css";
import type { CodeProps } from "./code.types";

export const Code = forwardRef<HTMLElement, CodeProps>(
({ children, size = "md", className, ...restProps }, ref) => {
return (
<code ref={ref} className={clsx(styles.code({ size }), className)} {...restProps}>
{children}
</code>
);
},
);

Code.displayName = "Code";
12 changes: 0 additions & 12 deletions packages/jds/src/components/Code/Code.types.ts

This file was deleted.

27 changes: 27 additions & 0 deletions packages/jds/src/components/Code/code.css.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { recipe } from "@vanilla-extract/recipes";

import type { CodeSize } from "./code.types";
Comment thread
ccconac marked this conversation as resolved.
import { vars } from "tokens";

export const codeTypographyClassName: Record<CodeSize, string> = {
lg: "semantic-textStyle-syntax-lg",
md: "semantic-textStyle-syntax-md",
sm: "semantic-textStyle-syntax-sm",
xs: "semantic-textStyle-syntax-xs",
};

export const code = recipe({
base: {
display: "inline-flex",
alignItems: "center",
padding: `${vars.scheme.semantic.spacing["0"]} ${vars.scheme.semantic.spacing["6"]}`,
borderRadius: vars.scheme.semantic.radius["4"],
background: vars.color.semantic.fill.subtlest,
border: `1px solid ${vars.color.semantic.stroke.alpha.assistive}`,
color: vars.color.semantic.object.bold,
cursor: "text",
},
variants: {
size: codeTypographyClassName,
},
});
8 changes: 8 additions & 0 deletions packages/jds/src/components/Code/code.types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import type { ComponentPropsWithoutRef, ReactNode } from "react";

export type CodeSize = "lg" | "md" | "sm" | "xs";

export interface CodeProps extends ComponentPropsWithoutRef<"code"> {
children: ReactNode;
size?: CodeSize;
}
2 changes: 1 addition & 1 deletion packages/jds/src/components/Code/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export * from "./Code";
export * from "./Code.types";
export * from "./code.types";
Loading