@liner-fe/prism 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -0
- package/lib/index.cjs +33 -0
- package/lib/index.cjs.map +7 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.mjs +12 -0
- package/lib/index.mjs.map +7 -0
- package/lib/utils/object.d.ts +1 -0
- package/package.json +74 -0
- package/src/Configure.mdx +32 -0
- package/src/assets/design-token-cover.png +0 -0
- package/src/design-token/border-radius/index.mdx +8 -0
- package/src/design-token/border-radius/index.stories.ts +16 -0
- package/src/design-token/border-radius/index.tsx +29 -0
- package/src/design-token/color/index.mdx +38 -0
- package/src/design-token/color/index.stories.ts +27 -0
- package/src/design-token/color/index.tsx +30 -0
- package/src/design-token/opacity/index.mdx +8 -0
- package/src/design-token/opacity/index.stories.ts +16 -0
- package/src/design-token/opacity/index.tsx +3 -0
- package/src/design-token/size/index.mdx +8 -0
- package/src/design-token/size/index.stories.ts +16 -0
- package/src/design-token/size/index.tsx +24 -0
- package/src/design-token/typography/index.mdx +8 -0
- package/src/design-token/typography/index.stories.ts +16 -0
- package/src/design-token/typography/index.tsx +16 -0
- package/src/index.ts +1 -0
- package/src/utils/object.ts +3 -0
package/README.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
|
|
2
|
+
|
|
3
|
+
## Getting Started
|
|
4
|
+
|
|
5
|
+
First, run the development server:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm run dev
|
|
9
|
+
# or
|
|
10
|
+
yarn dev
|
|
11
|
+
# or
|
|
12
|
+
pnpm dev
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
|
16
|
+
|
|
17
|
+
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
|
18
|
+
|
|
19
|
+
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
|
|
20
|
+
|
|
21
|
+
## Learn More
|
|
22
|
+
|
|
23
|
+
To learn more about Next.js, take a look at the following resources:
|
|
24
|
+
|
|
25
|
+
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
|
26
|
+
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
|
27
|
+
|
|
28
|
+
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
|
|
29
|
+
|
|
30
|
+
## Deploy on Vercel
|
|
31
|
+
|
|
32
|
+
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
|
33
|
+
|
|
34
|
+
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
|
package/lib/index.cjs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/index.ts
|
|
22
|
+
var src_exports = {};
|
|
23
|
+
__export(src_exports, {
|
|
24
|
+
objectToArray: () => objectToArray
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(src_exports);
|
|
27
|
+
|
|
28
|
+
// src/utils/object.ts
|
|
29
|
+
var objectToArray = /* @__PURE__ */ __name((obj) => {
|
|
30
|
+
return Object.entries(obj);
|
|
31
|
+
}, "objectToArray");
|
|
32
|
+
/*! For license information please see index.cjs.LEGAL.txt */
|
|
33
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts", "../src/utils/object.ts"],
|
|
4
|
+
"sourcesContent": ["export * from './utils/object';\n", "export const objectToArray = <T extends Record<string, any>>(obj: T) => {\n return Object.entries(obj);\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,gBAAgB,wBAAgC,QAAW;AACtE,SAAO,OAAO,QAAQ,GAAG;AAC3B,GAF6B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './utils/object';
|
package/lib/index.mjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/utils/object.ts
|
|
5
|
+
var objectToArray = /* @__PURE__ */ __name((obj) => {
|
|
6
|
+
return Object.entries(obj);
|
|
7
|
+
}, "objectToArray");
|
|
8
|
+
export {
|
|
9
|
+
objectToArray
|
|
10
|
+
};
|
|
11
|
+
/*! For license information please see index.mjs.LEGAL.txt */
|
|
12
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/object.ts"],
|
|
4
|
+
"sourcesContent": ["export const objectToArray = <T extends Record<string, any>>(obj: T) => {\n return Object.entries(obj);\n};\n"],
|
|
5
|
+
"mappings": ";;;;AAAO,IAAM,gBAAgB,wBAAgC,QAAW;AACtE,SAAO,OAAO,QAAQ,GAAG;AAC3B,GAF6B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const objectToArray: <T extends Record<string, any>>(obj: T) => [string, any][];
|
package/package.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@liner-fe/prism",
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"packageManager": "yarn@3.6.0",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "next dev",
|
|
7
|
+
"start": "next start",
|
|
8
|
+
"lint": "next lint",
|
|
9
|
+
"storybook": "storybook dev -p 6006",
|
|
10
|
+
"build-storybook": "storybook build",
|
|
11
|
+
"build": "nanobundle build",
|
|
12
|
+
"build:package": "yarn build",
|
|
13
|
+
"prepack": "yarn build"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@liner-fe/design-token": "workspace:^",
|
|
17
|
+
"class-variance-authority": "^0.7.0",
|
|
18
|
+
"clsx": "^2.1.1",
|
|
19
|
+
"framer-motion": "^11.2.13",
|
|
20
|
+
"next": "^13.4.6",
|
|
21
|
+
"react": "^18.2.0",
|
|
22
|
+
"react-dom": "^18.2.0"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"react": "*"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@chromatic-com/storybook": "^1.5.0",
|
|
29
|
+
"@storybook/addon-essentials": "^8.1.7",
|
|
30
|
+
"@storybook/addon-interactions": "^8.1.7",
|
|
31
|
+
"@storybook/addon-links": "^8.1.7",
|
|
32
|
+
"@storybook/addon-onboarding": "^8.1.7",
|
|
33
|
+
"@storybook/blocks": "^8.1.7",
|
|
34
|
+
"@storybook/nextjs": "^8.1.7",
|
|
35
|
+
"@storybook/react": "^8.1.7",
|
|
36
|
+
"@storybook/test": "^8.1.7",
|
|
37
|
+
"@types/node": "^20.3.1",
|
|
38
|
+
"@types/react": "^18.2.12",
|
|
39
|
+
"@types/react-dom": "^18.2.5",
|
|
40
|
+
"autoprefixer": "^10.4.14",
|
|
41
|
+
"chromatic": "^11.5.3",
|
|
42
|
+
"nanobundle": "^1.6.0",
|
|
43
|
+
"postcss": "^8.4.24",
|
|
44
|
+
"prettier": "^2.8.8",
|
|
45
|
+
"prettier-plugin-tailwindcss": "^0.3.0",
|
|
46
|
+
"sass": "^1.77.6",
|
|
47
|
+
"storybook": "^8.1.7",
|
|
48
|
+
"typescript": "^5.1.6"
|
|
49
|
+
},
|
|
50
|
+
"files": [
|
|
51
|
+
"lib",
|
|
52
|
+
"src"
|
|
53
|
+
],
|
|
54
|
+
"main": "./lib/index.cjs",
|
|
55
|
+
"types": "./lib/index.d.ts",
|
|
56
|
+
"maintainers": [
|
|
57
|
+
{
|
|
58
|
+
"name": "jake-liner",
|
|
59
|
+
"email": "jake@linercorp.com"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"exports": {
|
|
63
|
+
".": {
|
|
64
|
+
"types": "./lib/index.d.ts",
|
|
65
|
+
"import": "./lib/index.mjs",
|
|
66
|
+
"require": "./lib/index.cjs"
|
|
67
|
+
},
|
|
68
|
+
"./package.json": "./package.json"
|
|
69
|
+
},
|
|
70
|
+
"publishConfig": {
|
|
71
|
+
"access": "public",
|
|
72
|
+
"main": "./lib/index.mjs"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import Image from 'next/image';
|
|
3
|
+
|
|
4
|
+
import Styling from './assets/design-token-cover.png';
|
|
5
|
+
|
|
6
|
+
<Meta title="Liner 디자인 시스템 온보딩 문서" />
|
|
7
|
+
|
|
8
|
+
<div className="sb-container">
|
|
9
|
+
<div className='sb-section-title'>
|
|
10
|
+
# Liner Design System에 오신 것을 환영합니다.
|
|
11
|
+
|
|
12
|
+
Liner Design System은 지속가능한 방식으로 디자인의 구성요소를 만듭니다.
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
<div>
|
|
16
|
+
<div>
|
|
17
|
+
<Image
|
|
18
|
+
src={Styling}
|
|
19
|
+
alt="A wall of logos representing different styling technologies"
|
|
20
|
+
width={200}
|
|
21
|
+
height={0}
|
|
22
|
+
style={{ width: '100%', height: 'auto', borderRadius: "10px" }}
|
|
23
|
+
/>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<h2 style={{ marginTop: '40px' }}>developer Guide</h2>
|
|
28
|
+
|
|
29
|
+
`npm i @liner-fe/design-token`
|
|
30
|
+
|
|
31
|
+
<p>마지막 수정자: 엘리엇 (2024. 06. 13)</p>
|
|
32
|
+
</div>
|
|
Binary file
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Color } from './index';
|
|
3
|
+
|
|
4
|
+
const meta = {
|
|
5
|
+
title: 'DesignToken/BorderRadius',
|
|
6
|
+
component: Color,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'fullscreen',
|
|
9
|
+
},
|
|
10
|
+
} satisfies Meta<typeof Color>;
|
|
11
|
+
|
|
12
|
+
export default meta;
|
|
13
|
+
|
|
14
|
+
type Story = StoryObj<typeof meta>;
|
|
15
|
+
|
|
16
|
+
export const All: Story = {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { radius } from '@liner-fe/design-token';
|
|
2
|
+
|
|
3
|
+
import { objectToArray } from '../../utils/object';
|
|
4
|
+
|
|
5
|
+
export const Color = () => (
|
|
6
|
+
<div style={{ display: 'flex', gap: '20px', justifyContent: 'center', alignItems: 'center', height: '100vh' }}>
|
|
7
|
+
{objectToArray(radius).map(([key, value]) => {
|
|
8
|
+
return (
|
|
9
|
+
<div
|
|
10
|
+
style={{
|
|
11
|
+
backgroundColor: '#ededed',
|
|
12
|
+
borderRadius: `${value}px`,
|
|
13
|
+
width: '150px',
|
|
14
|
+
height: '150px',
|
|
15
|
+
justifyContent: 'center',
|
|
16
|
+
display: 'flex',
|
|
17
|
+
alignItems: 'center',
|
|
18
|
+
flexDirection: 'column',
|
|
19
|
+
gap: '12px',
|
|
20
|
+
fontWeight: 'bold',
|
|
21
|
+
}}
|
|
22
|
+
>
|
|
23
|
+
<div>{key}</div>
|
|
24
|
+
<div style={{ fontSize: '12px' }}>{value}px</div>
|
|
25
|
+
</div>
|
|
26
|
+
);
|
|
27
|
+
})}
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Canvas, Meta } from '@storybook/blocks';
|
|
2
|
+
import * as SizeStories from './index.stories.ts';
|
|
3
|
+
|
|
4
|
+
<Meta of={SizeStories} />
|
|
5
|
+
|
|
6
|
+
<div>
|
|
7
|
+
<h1>Design Token: Color 개발자 가이드</h1>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
primitve, system로 위계가 나뉩니다.
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
const color = {
|
|
14
|
+
primitive,
|
|
15
|
+
system,
|
|
16
|
+
};
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
primitive는 원시 값(hex값과 같은 실제 값)을 매핑 하고 있습니다. system은 시멘틱한 네이밍으로 primitive를 매핑하고 있습니다.
|
|
20
|
+
|
|
21
|
+
그래서 대부분의 경우에는 system값을 사용해야하며, 불가피하게 primitive 값을 사용할 때는 프론트엔드 플래닛에 공유해주시길 바랍니다.
|
|
22
|
+
|
|
23
|
+
<h2>스타일링 라이브러리</h2>
|
|
24
|
+
|
|
25
|
+
<h3>CSS, SCSS</h3>
|
|
26
|
+
|
|
27
|
+
플랫폼: liner-space
|
|
28
|
+
|
|
29
|
+
<h3>CSS-in-js</h3>
|
|
30
|
+
|
|
31
|
+
플랫폼: liner-web, liner-be
|
|
32
|
+
|
|
33
|
+
<h3>React Native</h3>
|
|
34
|
+
|
|
35
|
+
플랫폼: liner-mobile
|
|
36
|
+
확인하지 않음
|
|
37
|
+
|
|
38
|
+
<h2>DarkMode를 구현하는 방법</h2>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Color } from './index';
|
|
3
|
+
import { color } from '@liner-fe/design-token';
|
|
4
|
+
|
|
5
|
+
const meta = {
|
|
6
|
+
title: 'DesignToken/Color',
|
|
7
|
+
component: Color,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'fullscreen',
|
|
10
|
+
},
|
|
11
|
+
} satisfies Meta<typeof Color>;
|
|
12
|
+
|
|
13
|
+
export default meta;
|
|
14
|
+
|
|
15
|
+
type Story = StoryObj<typeof meta>;
|
|
16
|
+
|
|
17
|
+
export const System: Story = {
|
|
18
|
+
args: {
|
|
19
|
+
type: 'system',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Primitive: Story = {
|
|
24
|
+
args: {
|
|
25
|
+
type: 'primitive',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { objectToArray } from '@/utils/object';
|
|
2
|
+
import { color, useDarkTheme, vars } from '@liner-fe/design-token';
|
|
3
|
+
import { useEffect } from 'react';
|
|
4
|
+
|
|
5
|
+
interface IProps {
|
|
6
|
+
type: 'primitive' | 'system';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const Color = ({ type }: IProps) => {
|
|
10
|
+
const { toggleTheme } = useDarkTheme();
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<div style={{ display: 'flex', flexWrap: 'wrap', gap: '10px', justifyContent: 'center', margin: '20px 0' }}>
|
|
14
|
+
<div>
|
|
15
|
+
<button onClick={toggleTheme}>Dark theme</button>
|
|
16
|
+
{document.documentElement.getAttribute('color-theme')}
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
{objectToArray(type === 'primitive' ? color.color.primitive : color.color.system).map(([key, value]) => (
|
|
20
|
+
<div
|
|
21
|
+
key={key}
|
|
22
|
+
style={{ width: 200, height: 250, border: '1px solid #ededed', borderRadius: 10, textAlign: 'center' }}
|
|
23
|
+
>
|
|
24
|
+
<div style={{ backgroundColor: value, height: 150, borderRadius: '10px 10px 0 0' }}></div>
|
|
25
|
+
{key} {value}
|
|
26
|
+
</div>
|
|
27
|
+
))}
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Opacity } from './index';
|
|
3
|
+
|
|
4
|
+
const meta = {
|
|
5
|
+
title: 'DesignToken/Opacity',
|
|
6
|
+
component: Opacity,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'fullscreen',
|
|
9
|
+
},
|
|
10
|
+
} satisfies Meta<typeof Opacity>;
|
|
11
|
+
|
|
12
|
+
export default meta;
|
|
13
|
+
|
|
14
|
+
type Story = StoryObj<typeof meta>;
|
|
15
|
+
|
|
16
|
+
export const All: Story = {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Size } from './index';
|
|
3
|
+
|
|
4
|
+
const meta = {
|
|
5
|
+
title: 'DesignToken/Size',
|
|
6
|
+
component: Size,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'fullscreen',
|
|
9
|
+
},
|
|
10
|
+
} satisfies Meta<typeof Size>;
|
|
11
|
+
|
|
12
|
+
export default meta;
|
|
13
|
+
|
|
14
|
+
type Story = StoryObj<typeof meta>;
|
|
15
|
+
|
|
16
|
+
export const All: Story = {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { objectToArray } from '@/utils/object';
|
|
2
|
+
import { size } from '@liner-fe/design-token';
|
|
3
|
+
|
|
4
|
+
export const Size = () => (
|
|
5
|
+
<div>
|
|
6
|
+
{objectToArray(size).map(([key, value]) => {
|
|
7
|
+
return (
|
|
8
|
+
<div
|
|
9
|
+
style={{
|
|
10
|
+
backgroundColor: '#ededed',
|
|
11
|
+
width: `${value}px`,
|
|
12
|
+
height: `${value}px`,
|
|
13
|
+
justifyContent: 'center',
|
|
14
|
+
display: 'flex',
|
|
15
|
+
alignItems: 'center',
|
|
16
|
+
flexDirection: 'column',
|
|
17
|
+
gap: '12px',
|
|
18
|
+
fontWeight: 'bold',
|
|
19
|
+
}}
|
|
20
|
+
></div>
|
|
21
|
+
);
|
|
22
|
+
})}
|
|
23
|
+
</div>
|
|
24
|
+
);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Typography } from './index';
|
|
3
|
+
|
|
4
|
+
const meta = {
|
|
5
|
+
title: 'DesignToken/Typography',
|
|
6
|
+
component: Typography,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'fullscreen',
|
|
9
|
+
},
|
|
10
|
+
} satisfies Meta<typeof Typography>;
|
|
11
|
+
|
|
12
|
+
export default meta;
|
|
13
|
+
|
|
14
|
+
type Story = StoryObj<typeof meta>;
|
|
15
|
+
|
|
16
|
+
export const All: Story = {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { objectToArray } from '@/utils/object';
|
|
2
|
+
import { Display, font } from '@liner-fe/design-token';
|
|
3
|
+
|
|
4
|
+
export const Typography = () => (
|
|
5
|
+
<div>
|
|
6
|
+
{/* {objectToArray(font.size).map(([key, value]) => (
|
|
7
|
+
<div>
|
|
8
|
+
{key} {value}
|
|
9
|
+
</div>
|
|
10
|
+
))} */}
|
|
11
|
+
|
|
12
|
+
<p style={{ fontSize: '16px', fontWeight: 500, fontFamily: 'pretendard', lineHeight: 26 }}>Blah Blah</p>
|
|
13
|
+
|
|
14
|
+
<Display type={'accent'}>Blah Blah</Display>
|
|
15
|
+
</div>
|
|
16
|
+
);
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './utils/object';
|