linkedunion-design-kit 0.1.0
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/.eslintrc.json +6 -0
- package/.storybook/main.ts +20 -0
- package/.storybook/preview.ts +15 -0
- package/README.md +36 -0
- package/_test_/Color.test.js +42 -0
- package/app/favicon.ico +0 -0
- package/app/globals.css +27 -0
- package/app/layout.tsx +22 -0
- package/app/page.tsx +113 -0
- package/components/Color/Color.stories.tsx +87 -0
- package/components/Color/Color.tsx +19 -0
- package/components/Typography/Typography.stories.tsx +59 -0
- package/components/Typography/Typography.tsx +8 -0
- package/dist/app/layout.d.ts +6 -0
- package/dist/app/layout.jsx +13 -0
- package/dist/app/page.d.ts +1 -0
- package/dist/app/page.jsx +71 -0
- package/dist/components/Color/Color.d.ts +3 -0
- package/dist/components/Color/Color.jsx +16 -0
- package/dist/components/Color/Color.stories.d.ts +10 -0
- package/dist/components/Color/Color.stories.jsx +76 -0
- package/dist/components/Typography/Typography.d.ts +3 -0
- package/dist/components/Typography/Typography.jsx +7 -0
- package/dist/components/Typography/Typography.stories.d.ts +5 -0
- package/dist/components/Typography/Typography.stories.jsx +51 -0
- package/dist/global.css +8806 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/tailwind.config.d.ts +3 -0
- package/dist/tailwind.config.js +75 -0
- package/dist/utils/index.d.ts +305 -0
- package/dist/utils/index.js +413 -0
- package/index.ts +3 -0
- package/jest.config.js +23 -0
- package/jest.setup.js +25 -0
- package/next.config.js +4 -0
- package/package-lock.json +12682 -0
- package/package.json +60 -0
- package/postcss.config.js +6 -0
- package/public/next.svg +1 -0
- package/public/vercel.svg +1 -0
- package/tailwind.config.ts +89 -0
- package/tsconfig.json +50 -0
- package/types/interface.d.ts +18 -0
- package/utils/index.ts +439 -0
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "linkedunion-design-kit",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"dev": "next dev",
|
|
9
|
+
"build": "postcss app/globals.css -o dist/global.css && tsc && tsc-alias",
|
|
10
|
+
"start": "next start",
|
|
11
|
+
"lint": "next lint",
|
|
12
|
+
"storybook": "storybook dev -p 6006",
|
|
13
|
+
"build-storybook": "storybook build",
|
|
14
|
+
"test": "jest",
|
|
15
|
+
"coverage": "jest --coverage",
|
|
16
|
+
"test:watch": "jest --watch"
|
|
17
|
+
},
|
|
18
|
+
"author": "linkedunion",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@storybook/testing-library": "^0.2.2",
|
|
22
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
23
|
+
"@testing-library/react": "^16.0.1",
|
|
24
|
+
"next": "14.0.0",
|
|
25
|
+
"react": "^18",
|
|
26
|
+
"react-dom": "^18",
|
|
27
|
+
"tsc-alias": "^1.8.10"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@chromatic-com/storybook": "^3.2.2",
|
|
31
|
+
"@storybook/addon-essentials": "^8.4.3",
|
|
32
|
+
"@storybook/addon-interactions": "^8.4.3",
|
|
33
|
+
"@storybook/addon-onboarding": "^8.4.3",
|
|
34
|
+
"@storybook/blocks": "^8.4.3",
|
|
35
|
+
"@storybook/client-logger": "^8.4.4",
|
|
36
|
+
"@storybook/nextjs": "^8.4.3",
|
|
37
|
+
"@storybook/react": "^8.4.4",
|
|
38
|
+
"@storybook/test": "^8.4.3",
|
|
39
|
+
"@storybook/testing-react": "^2.0.1",
|
|
40
|
+
"@testing-library/user-event": "^14.5.2",
|
|
41
|
+
"@types/jest": "^29.5.14",
|
|
42
|
+
"@types/node": "^20",
|
|
43
|
+
"@types/react": "^18",
|
|
44
|
+
"@types/react-dom": "^18",
|
|
45
|
+
"autoprefixer": "^10",
|
|
46
|
+
"eslint": "^8",
|
|
47
|
+
"eslint-config-next": "14.0.0",
|
|
48
|
+
"eslint-plugin-storybook": "^0.11.0",
|
|
49
|
+
"jest": "^29.7.0",
|
|
50
|
+
"jest-canvas-mock": "^2.5.2",
|
|
51
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
52
|
+
"jest-fetch-mock": "^3.0.3",
|
|
53
|
+
"matchmedia-polyfill": "^0.3.2",
|
|
54
|
+
"postcss": "^8.4.49",
|
|
55
|
+
"postcss-cli": "^11.0.0",
|
|
56
|
+
"storybook": "^8.4.3",
|
|
57
|
+
"tailwindcss": "^3",
|
|
58
|
+
"typescript": "^5"
|
|
59
|
+
}
|
|
60
|
+
}
|
package/public/next.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 283 64"><path fill="black" d="M141 16c-11 0-19 7-19 18s9 18 20 18c7 0 13-3 16-7l-7-5c-2 3-6 4-9 4-5 0-9-3-10-7h28v-3c0-11-8-18-19-18zm-9 15c1-4 4-7 9-7s8 3 9 7h-18zm117-15c-11 0-19 7-19 18s9 18 20 18c6 0 12-3 16-7l-8-5c-2 3-5 4-8 4-5 0-9-3-11-7h28l1-3c0-11-8-18-19-18zm-10 15c2-4 5-7 10-7s8 3 9 7h-19zm-39 3c0 6 4 10 10 10 4 0 7-2 9-5l8 5c-3 5-9 8-17 8-11 0-19-7-19-18s8-18 19-18c8 0 14 3 17 8l-8 5c-2-3-5-5-9-5-6 0-10 4-10 10zm83-29v46h-9V5h9zM37 0l37 64H0L37 0zm92 5-27 48L74 5h10l18 30 17-30h10zm59 12v10l-3-1c-6 0-10 4-10 10v15h-9V17h9v9c0-5 6-9 13-9z"/></svg>
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { Config } from 'tailwindcss'
|
|
2
|
+
import { colorGroups, customAspectRatio, customBorderRadius, customBorderWidth, customBoxShadow, customColors, customFontSize, customFontWeight, customHeight, customLineHeight, customLogoSize, customMinHeight, customMinWidth, customOpacity, customSize, customSpacing, customTextAlignment, customTextDecoration, customTextTransform, customTextWrap, customWidth, fontSizes, fontWeights, lineHeights, textAlignment, textDecorations, textTransform, textWraps } from './utils'
|
|
3
|
+
import generateUtilities from './utils';
|
|
4
|
+
|
|
5
|
+
const plugin = require('tailwindcss/plugin');
|
|
6
|
+
|
|
7
|
+
const config: Config = {
|
|
8
|
+
content: [
|
|
9
|
+
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
|
|
10
|
+
'./components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
11
|
+
'./app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
12
|
+
],
|
|
13
|
+
safelist: [
|
|
14
|
+
...colorGroups.primary.map(color => ({ pattern: new RegExp(color) })),
|
|
15
|
+
...colorGroups.gray.map(color => ({ pattern: new RegExp(color) })),
|
|
16
|
+
...colorGroups.success.map(color => ({ pattern: new RegExp(color) })),
|
|
17
|
+
...colorGroups.warning.map(color => ({ pattern: new RegExp(color) })),
|
|
18
|
+
...colorGroups.danger.map(color => ({ pattern: new RegExp(color) })),
|
|
19
|
+
...colorGroups.info.map(color => ({ pattern: new RegExp(color) })),
|
|
20
|
+
...fontSizes.map(fontSize => ({ pattern: new RegExp(fontSize.key) })),
|
|
21
|
+
...fontWeights.map(fontWeight => ({ pattern: new RegExp(fontWeight.key) })),
|
|
22
|
+
...lineHeights.map(lineHeight => ({ pattern: new RegExp(lineHeight.key) })),
|
|
23
|
+
...textAlignment.map(textAlign => ({ pattern: new RegExp(textAlign.key) })),
|
|
24
|
+
...textTransform.map(textTrans => ({ pattern: new RegExp(textTrans.key) })),
|
|
25
|
+
...textDecorations.map(textDec => ({ pattern: new RegExp(textDec.key) })),
|
|
26
|
+
...textWraps.map(textWrap => ({ pattern: new RegExp(textWrap.key) })),
|
|
27
|
+
],
|
|
28
|
+
theme: {
|
|
29
|
+
extend: {
|
|
30
|
+
backgroundImage: {
|
|
31
|
+
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
|
|
32
|
+
'gradient-conic':
|
|
33
|
+
'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
|
|
34
|
+
},
|
|
35
|
+
colors: customColors,
|
|
36
|
+
fontSize: customFontSize,
|
|
37
|
+
fontWeight: customFontWeight,
|
|
38
|
+
lineHeight: customLineHeight,
|
|
39
|
+
textAlign: customTextAlignment,
|
|
40
|
+
textTransform: customTextTransform,
|
|
41
|
+
textDecoration: customTextDecoration,
|
|
42
|
+
textWrap: customTextWrap,
|
|
43
|
+
size: customSize,
|
|
44
|
+
width: customWidth,
|
|
45
|
+
height: customHeight,
|
|
46
|
+
minWidth: customMinWidth,
|
|
47
|
+
minHeight: customMinHeight,
|
|
48
|
+
logoSize: customLogoSize,
|
|
49
|
+
spacing: customSpacing,
|
|
50
|
+
opacity: customOpacity,
|
|
51
|
+
borderWidth: customBorderWidth,
|
|
52
|
+
borderRadius: customBorderRadius,
|
|
53
|
+
aspectRatio: customAspectRatio,
|
|
54
|
+
boxShadow: customBoxShadow
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
plugins: [
|
|
58
|
+
plugin(function ({ addUtilities, theme }: { addUtilities: (utilities: any, options?: any) => void, theme: (path: string) => any }) {
|
|
59
|
+
//Font Size plugin
|
|
60
|
+
const fontSizeUtilities = generateUtilities('fontSize', theme);
|
|
61
|
+
addUtilities(fontSizeUtilities, ['responsive'])
|
|
62
|
+
|
|
63
|
+
//Font Weight plugin
|
|
64
|
+
const fontWeightUtilities = generateUtilities('fontWeight', theme);
|
|
65
|
+
addUtilities(fontWeightUtilities, ['responsive'])
|
|
66
|
+
|
|
67
|
+
//Line Height plugin
|
|
68
|
+
const lineHeightUtilities = generateUtilities('lineHeight', theme);
|
|
69
|
+
addUtilities(lineHeightUtilities, ['responsive'])
|
|
70
|
+
|
|
71
|
+
//Text Alignment plugin
|
|
72
|
+
const textAlignmentUtilities = generateUtilities('textAlign', theme);
|
|
73
|
+
addUtilities(textAlignmentUtilities, ['responsive'])
|
|
74
|
+
|
|
75
|
+
//Text Transform plugin
|
|
76
|
+
const textTransformUtilities = generateUtilities('textTransform', theme);
|
|
77
|
+
addUtilities(textTransformUtilities, ['responsive'])
|
|
78
|
+
|
|
79
|
+
//Text Decoration plugin
|
|
80
|
+
const textDecorationUtilities = generateUtilities('textDecoration', theme);
|
|
81
|
+
addUtilities(textDecorationUtilities, ['responsive'])
|
|
82
|
+
|
|
83
|
+
//Text Wrap plugin
|
|
84
|
+
const textWrapUtilities = generateUtilities('textWrap', theme);
|
|
85
|
+
addUtilities(textWrapUtilities, ['responsive'])
|
|
86
|
+
}),
|
|
87
|
+
],
|
|
88
|
+
}
|
|
89
|
+
export default config
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es5",
|
|
4
|
+
"lib": [
|
|
5
|
+
"dom",
|
|
6
|
+
"dom.iterable",
|
|
7
|
+
"esnext"
|
|
8
|
+
],
|
|
9
|
+
"allowJs": false,
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"strict": true,
|
|
12
|
+
"forceConsistentCasingInFileNames": true,
|
|
13
|
+
"noEmit": false,
|
|
14
|
+
"esModuleInterop": true,
|
|
15
|
+
"module": "esnext",
|
|
16
|
+
"moduleResolution": "bundler",
|
|
17
|
+
"resolveJsonModule": true,
|
|
18
|
+
"isolatedModules": true,
|
|
19
|
+
"jsx": "preserve",
|
|
20
|
+
"incremental": false,
|
|
21
|
+
"outDir": "./dist",
|
|
22
|
+
"declaration": true,
|
|
23
|
+
"plugins": [
|
|
24
|
+
{
|
|
25
|
+
"name": "next"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"paths": {
|
|
29
|
+
"@/*": [
|
|
30
|
+
"./*"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"typeRoots": [
|
|
34
|
+
"node_modules/@types"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"include": [
|
|
38
|
+
"next-env.d.ts",
|
|
39
|
+
"**/*.ts",
|
|
40
|
+
"**/*.tsx",
|
|
41
|
+
".next/types/**/*.ts",
|
|
42
|
+
"index.ts",
|
|
43
|
+
"jest.setup.js",
|
|
44
|
+
"jest.config.js"
|
|
45
|
+
],
|
|
46
|
+
"exclude": [
|
|
47
|
+
"node_modules",
|
|
48
|
+
"./dist"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface ColorProps {
|
|
2
|
+
label?: string;
|
|
3
|
+
color?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
interface TypographyProps {
|
|
8
|
+
label?: string
|
|
9
|
+
fontSize?: string
|
|
10
|
+
fontWeight?: string
|
|
11
|
+
lineHeight?: string
|
|
12
|
+
textAlign?: string
|
|
13
|
+
textTransform?: string
|
|
14
|
+
textDecoration?: string
|
|
15
|
+
textWrap?: string
|
|
16
|
+
className?: string
|
|
17
|
+
}
|
|
18
|
+
|
package/utils/index.ts
ADDED
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
//************Used for typography and color utilities Storybook************
|
|
2
|
+
export const text = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.";
|
|
3
|
+
|
|
4
|
+
export const colorGroups = {
|
|
5
|
+
primary: [
|
|
6
|
+
"bg-primary-0",
|
|
7
|
+
"bg-primary-100",
|
|
8
|
+
"bg-primary-200",
|
|
9
|
+
"bg-primary-300",
|
|
10
|
+
"bg-primary-400",
|
|
11
|
+
"bg-primary-500",
|
|
12
|
+
"bg-primary-600",
|
|
13
|
+
"bg-primary-700",
|
|
14
|
+
"bg-primary-800",
|
|
15
|
+
"bg-primary-900",
|
|
16
|
+
"bg-primary-1000",
|
|
17
|
+
],
|
|
18
|
+
gray: [
|
|
19
|
+
"bg-gray-0",
|
|
20
|
+
"bg-gray-100",
|
|
21
|
+
"bg-gray-200",
|
|
22
|
+
"bg-gray-300",
|
|
23
|
+
"bg-gray-400",
|
|
24
|
+
"bg-gray-500",
|
|
25
|
+
"bg-gray-600",
|
|
26
|
+
"bg-gray-700",
|
|
27
|
+
"bg-gray-800",
|
|
28
|
+
"bg-gray-900",
|
|
29
|
+
"bg-gray-1000",
|
|
30
|
+
],
|
|
31
|
+
success: [
|
|
32
|
+
"bg-success-0",
|
|
33
|
+
"bg-success-100",
|
|
34
|
+
"bg-success-200",
|
|
35
|
+
"bg-success-300",
|
|
36
|
+
"bg-success-400",
|
|
37
|
+
"bg-success-500",
|
|
38
|
+
"bg-success-600",
|
|
39
|
+
"bg-success-700",
|
|
40
|
+
"bg-success-800",
|
|
41
|
+
"bg-success-900",
|
|
42
|
+
"bg-success-1000",
|
|
43
|
+
],
|
|
44
|
+
warning: [
|
|
45
|
+
"bg-warning-0",
|
|
46
|
+
"bg-warning-100",
|
|
47
|
+
"bg-warning-200",
|
|
48
|
+
"bg-warning-300",
|
|
49
|
+
"bg-warning-400",
|
|
50
|
+
"bg-warning-500",
|
|
51
|
+
"bg-warning-600",
|
|
52
|
+
"bg-warning-700",
|
|
53
|
+
"bg-warning-800",
|
|
54
|
+
"bg-warning-900",
|
|
55
|
+
"bg-warning-1000",
|
|
56
|
+
],
|
|
57
|
+
danger: [
|
|
58
|
+
"bg-danger-0",
|
|
59
|
+
"bg-danger-100",
|
|
60
|
+
"bg-danger-200",
|
|
61
|
+
"bg-danger-300",
|
|
62
|
+
"bg-danger-400",
|
|
63
|
+
"bg-danger-500",
|
|
64
|
+
"bg-danger-600",
|
|
65
|
+
"bg-danger-700",
|
|
66
|
+
"bg-danger-800",
|
|
67
|
+
"bg-danger-900",
|
|
68
|
+
"bg-danger-1000",
|
|
69
|
+
],
|
|
70
|
+
info: [
|
|
71
|
+
"bg-info-0",
|
|
72
|
+
"bg-info-100",
|
|
73
|
+
"bg-info-200",
|
|
74
|
+
"bg-info-300",
|
|
75
|
+
"bg-info-400",
|
|
76
|
+
"bg-info-500",
|
|
77
|
+
"bg-info-600",
|
|
78
|
+
"bg-info-700",
|
|
79
|
+
"bg-info-800",
|
|
80
|
+
"bg-info-900",
|
|
81
|
+
"bg-info-1000",
|
|
82
|
+
]
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const fontSizes = [
|
|
86
|
+
{ key: 'lu-base-font-size', label: 'lu-base-font-size: 16px' },
|
|
87
|
+
{ key: 'lu-font-size-x-small', label: 'lu-font-size-x-small: 12px' },
|
|
88
|
+
{ key: 'lu-font-size-small', label: 'lu-font-size-small: 14px' },
|
|
89
|
+
{ key: 'lu-font-size-medium', label: 'lu-font-size-medium: 16px' },
|
|
90
|
+
{ key: 'lu-font-size-large', label: 'lu-font-size-large: 18px' },
|
|
91
|
+
{ key: 'lu-font-size-x-large', label: 'lu-font-size-x-large: 20px' },
|
|
92
|
+
{ key: 'lu-font-size-2x-large', label: 'lu-font-size-2x-large: 24px' },
|
|
93
|
+
{ key: 'lu-font-size-3x-large', label: 'lu-font-size-3x-large: 28px' },
|
|
94
|
+
{ key: 'lu-font-size-4x-large', label: 'lu-font-size-4x-large: 32px' },
|
|
95
|
+
{ key: 'lu-font-size-5x-large', label: 'lu-font-size-5x-large: 36px' },
|
|
96
|
+
{ key: 'lu-font-size-6x-large', label: 'lu-font-size-6x-large: 40px' },
|
|
97
|
+
{ key: 'lu-font-size-7x-large', label: 'lu-font-size-7x-large: 48px' },
|
|
98
|
+
{ key: 'lu-font-size-huge', label: 'lu-font-size-huge: 64px' },
|
|
99
|
+
];
|
|
100
|
+
|
|
101
|
+
export const fontWeights = [
|
|
102
|
+
{ key: 'lu-font-weight-thin', label: 'lu-font-weight-thin: 100' },
|
|
103
|
+
{ key: 'lu-font-weight-extra-light', label: 'lu-font-weight-extra-light: 200' },
|
|
104
|
+
{ key: 'lu-font-weight-light', label: 'lu-font-weight-light: 300' },
|
|
105
|
+
{ key: 'lu-font-weight-regular', label: 'lu-font-weight-regular: 400' },
|
|
106
|
+
{ key: 'lu-font-weight-medium', label: 'lu-font-weight-medium: 500' },
|
|
107
|
+
{ key: 'lu-font-weight-semibold', label: 'lu-font-weight-semibold: 600' },
|
|
108
|
+
{ key: 'lu-font-weight-bold', label: 'lu-font-weight-bold: 700' },
|
|
109
|
+
{ key: 'lu-font-weight-extra-bold', label: 'lu-font-weight-extra-bold: 800' },
|
|
110
|
+
{ key: 'lu-font-weight-black', label: 'lu-font-weight-black: 900' },
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
export const lineHeights = [
|
|
114
|
+
{ key: 'lu-line-height-xs', label: 'lu-line-height-xs: 1' },
|
|
115
|
+
{ key: 'lu-line-height-sm', label: 'lu-line-height-sm: 1.25' },
|
|
116
|
+
{ key: 'lu-line-height-base', label: 'lu-line-height-base: 1.5' },
|
|
117
|
+
{ key: 'lu-line-height-lg', label: 'lu-line-height-lg: 2' }
|
|
118
|
+
]
|
|
119
|
+
|
|
120
|
+
export const textAlignment = [
|
|
121
|
+
{key: 'lu-text-left', label: 'lu-text-left: left'},
|
|
122
|
+
{key: 'lu-text-center', label: 'lu-text-center: center'},
|
|
123
|
+
{key: 'lu-text-right', label: 'lu-text-right: right'},
|
|
124
|
+
{key: 'lu-text-justify', label: 'lu-text-justify: justify'},
|
|
125
|
+
{key: 'lu-text-space-between', label: 'lu-text-space-between: space-between'},
|
|
126
|
+
]
|
|
127
|
+
|
|
128
|
+
export const textTransform = [
|
|
129
|
+
{key: 'lu-text-lowercase', label: 'lu-text-lowercase: lowercase'},
|
|
130
|
+
{key: 'lu-text-uppercase', label: 'lu-text-uppercase: uppercase'},
|
|
131
|
+
{key: 'lu-text-capitalize', label: 'lu-text-capitalize: capitalize'},
|
|
132
|
+
]
|
|
133
|
+
export const textDecorations = [
|
|
134
|
+
{key: 'lu-text-decoration-none', label: 'lu-text-decoration-none: none'},
|
|
135
|
+
{key: 'lu-text-decoration-underline', label: 'lu-text-decoration-underline: underline'},
|
|
136
|
+
{key: 'lu-text-decoration-linethrough', label: 'lu-text-decoration-linethrough: linethrough'},
|
|
137
|
+
]
|
|
138
|
+
export const textWraps = [
|
|
139
|
+
{key: 'lu-text-wrap', label: 'lu-text-wrap: normal'},
|
|
140
|
+
{key: 'lu-text-nowrap', label: 'lu-text-nowrap: nowrap'},
|
|
141
|
+
]
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
//Plugin for generating utilities (Used in tailwind.config.js)
|
|
145
|
+
export default function generateUtilities(property: string, theme: (property: string) => Record<string, string>) {
|
|
146
|
+
const utilities = theme(property);
|
|
147
|
+
const newUtilities = Object.keys(utilities).reduce((acc: Record<string, Record<string, string>>, key) => {
|
|
148
|
+
acc[`.${key}`] = { [property]: utilities[key] };
|
|
149
|
+
return acc;
|
|
150
|
+
}, {});
|
|
151
|
+
return newUtilities;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
//************Used for tailwind configuration************
|
|
155
|
+
export const customColors = {
|
|
156
|
+
white: '#FEFEFE',
|
|
157
|
+
black: '#0F0F0F',
|
|
158
|
+
primary: {
|
|
159
|
+
0: '#FBFCFE',
|
|
160
|
+
100: '#E2EDF9',
|
|
161
|
+
200: '#B8D3EF',
|
|
162
|
+
300: '#8EB9E6',
|
|
163
|
+
400: '#649EDD',
|
|
164
|
+
500: '#3A84D4',
|
|
165
|
+
600: '#276AB3',
|
|
166
|
+
700: '#1E528A',
|
|
167
|
+
800: '#153960',
|
|
168
|
+
900: '#0C2036',
|
|
169
|
+
1000: '#03080D'
|
|
170
|
+
},
|
|
171
|
+
gray: {
|
|
172
|
+
0: '#FCFCFD',
|
|
173
|
+
100: '#ECEDEE',
|
|
174
|
+
200: '#D2D4D5',
|
|
175
|
+
300: '#B7BABD',
|
|
176
|
+
400: '#9DA1A5',
|
|
177
|
+
500: '#82878C',
|
|
178
|
+
600: '#696E72',
|
|
179
|
+
700: '#515458',
|
|
180
|
+
800: '#383B3D',
|
|
181
|
+
900: '#202122',
|
|
182
|
+
1000: '#070808'
|
|
183
|
+
},
|
|
184
|
+
success: {
|
|
185
|
+
0: '#FCFDFC',
|
|
186
|
+
100: '#EBF5F0',
|
|
187
|
+
200: '#D1E7DD',
|
|
188
|
+
300: '#A3CFBB',
|
|
189
|
+
400: '#75B798',
|
|
190
|
+
500: '#479F76',
|
|
191
|
+
600: '#198653',
|
|
192
|
+
700: '#146C43',
|
|
193
|
+
800: '#0F5132',
|
|
194
|
+
900: '#0A3622',
|
|
195
|
+
1000: '#051B11'
|
|
196
|
+
},
|
|
197
|
+
warning: {
|
|
198
|
+
0: '#FFFDF5',
|
|
199
|
+
100: '#FFF9E5',
|
|
200
|
+
200: '#FFF4CC',
|
|
201
|
+
300: '#FFE999',
|
|
202
|
+
400: '#FFDE66',
|
|
203
|
+
500: '#FFD333',
|
|
204
|
+
600: '#FFC700',
|
|
205
|
+
700: '#DBAC00',
|
|
206
|
+
800: '#8A6C00',
|
|
207
|
+
900: '#665000',
|
|
208
|
+
1000: '#473800'
|
|
209
|
+
},
|
|
210
|
+
danger: {
|
|
211
|
+
0: '#FFFAFA',
|
|
212
|
+
100: '#FFE0E4',
|
|
213
|
+
200: '#FEC6CB',
|
|
214
|
+
300: '#FD9EA7',
|
|
215
|
+
400: '#FC7784',
|
|
216
|
+
500: '#FA4F5F',
|
|
217
|
+
600: '#E0061B',
|
|
218
|
+
700: '#B30515',
|
|
219
|
+
800: '#73030E',
|
|
220
|
+
900: '#460208',
|
|
221
|
+
1000: '#230104'
|
|
222
|
+
},
|
|
223
|
+
info: {
|
|
224
|
+
0: '#FBFBFE',
|
|
225
|
+
100: '#ECE9FB',
|
|
226
|
+
200: '#D5CFF6',
|
|
227
|
+
300: '#C3BAF2',
|
|
228
|
+
400: '#ADA0EE',
|
|
229
|
+
500: '#8976E6',
|
|
230
|
+
600: '#6249DE',
|
|
231
|
+
700: '#4226CF',
|
|
232
|
+
800: '#341EA4',
|
|
233
|
+
900: '#261679',
|
|
234
|
+
1000: '#190E4E'
|
|
235
|
+
},
|
|
236
|
+
}
|
|
237
|
+
export const customFontSize = {
|
|
238
|
+
'lu-base-font-size': '16px',
|
|
239
|
+
'lu-font-size-x-small': '12px',
|
|
240
|
+
'lu-font-size-small': '14px',
|
|
241
|
+
'lu-font-size-medium': '16px',
|
|
242
|
+
'lu-font-size-large': '18px',
|
|
243
|
+
'lu-font-size-x-large': '20px',
|
|
244
|
+
'lu-font-size-2x-large': '24px',
|
|
245
|
+
'lu-font-size-3x-large': '28px',
|
|
246
|
+
'lu-font-size-4x-large': '32px',
|
|
247
|
+
'lu-font-size-5x-large': '36px',
|
|
248
|
+
'lu-font-size-6x-large': '40px',
|
|
249
|
+
'lu-font-size-7x-large': '48px',
|
|
250
|
+
'lu-font-size-huge': '64px',
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export const customFontWeight = {
|
|
254
|
+
'lu-font-weight-thin': '100',
|
|
255
|
+
'lu-font-weight-extra-light': '200',
|
|
256
|
+
'lu-font-weight-light': '300',
|
|
257
|
+
'lu-font-weight-regular': '400',
|
|
258
|
+
'lu-font-weight-medium': '500',
|
|
259
|
+
'lu-font-weight-semibold': '600',
|
|
260
|
+
'lu-font-weight-bold': '700',
|
|
261
|
+
'lu-font-weight-extra-bold': '800',
|
|
262
|
+
'lu-font-weight-black': '900',
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
export const customLineHeight = {
|
|
266
|
+
'lu-line-height-xs': '1',
|
|
267
|
+
'lu-line-height-sm': '1.25',
|
|
268
|
+
'lu-line-height-base': '1.5',
|
|
269
|
+
'lu-line-height-lg': '2',
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export const customTextAlignment = {
|
|
273
|
+
'lu-text-left': 'left',
|
|
274
|
+
'lu-text-center': 'center',
|
|
275
|
+
'lu-text-right': 'right',
|
|
276
|
+
'lu-text-justify': 'justify',
|
|
277
|
+
'lu-text-space-between': 'space-between',
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
export const customTextTransform = {
|
|
281
|
+
'lu-text-lowercase': 'lowercase',
|
|
282
|
+
'lu-text-uppercase': 'uppercase',
|
|
283
|
+
'lu-text-capitalize': 'capitalize',
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
export const customTextDecoration = {
|
|
287
|
+
'lu-text-decoration-none': 'none',
|
|
288
|
+
'lu-text-decoration-underline': 'underline',
|
|
289
|
+
'lu-text-decoration-linethrough': 'line-through',
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
export const customTextWrap = {
|
|
293
|
+
'lu-text-wrap': 'normal',
|
|
294
|
+
'lu-text-nowrap': 'nowrap',
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export const customSize = {
|
|
298
|
+
'lu-size-050': '4px',
|
|
299
|
+
'lu-size-100': '8px',
|
|
300
|
+
'lu-size-200': '16px',
|
|
301
|
+
'lu-size-300': '24px',
|
|
302
|
+
'lu-size-400': '32px',
|
|
303
|
+
'lu-size-500': '40px',
|
|
304
|
+
'lu-size-600': '48px',
|
|
305
|
+
'lu-size-800': '64px',
|
|
306
|
+
'lu-size-1000': '80px',
|
|
307
|
+
'lu-size-1500': '120px',
|
|
308
|
+
'lu-size-2000': '160px',
|
|
309
|
+
'lu-size-2500': '200px',
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
export const customWidth = {
|
|
313
|
+
'lu-width-10': '10%',
|
|
314
|
+
'lu-width-25': '25%',
|
|
315
|
+
'lu-width-50': '50%',
|
|
316
|
+
'lu-width-75': '75%',
|
|
317
|
+
'lu-width-100': '100%'
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export const customHeight = {
|
|
321
|
+
'lu-height-10': '10%',
|
|
322
|
+
'lu-height-25': '25%',
|
|
323
|
+
'lu-height-50': '50%',
|
|
324
|
+
'lu-height-75': '75%',
|
|
325
|
+
'lu-height-100': '100%'
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
export const customMinWidth = {
|
|
329
|
+
'lu-min-width-400': '32px',
|
|
330
|
+
'lu-min-width-500': '40px',
|
|
331
|
+
'lu-min-width-600': '48px',
|
|
332
|
+
'lu-min-width-800': '64px',
|
|
333
|
+
'lu-min-width-1000': '80px',
|
|
334
|
+
'lu-min-width-1500': '120px',
|
|
335
|
+
'lu-min-width-2000': '160px',
|
|
336
|
+
'lu-min-width-2500': '200px',
|
|
337
|
+
'lu-min-width-3000': '240px',
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export const customMinHeight = {
|
|
341
|
+
'lu-min-height-400': '32px',
|
|
342
|
+
'lu-min-height-500': '40px',
|
|
343
|
+
'lu-min-height-600': '48px',
|
|
344
|
+
'lu-min-height-800': '64px',
|
|
345
|
+
'lu-min-height-1000': '80px',
|
|
346
|
+
'lu-min-height-1500': '120px',
|
|
347
|
+
'lu-min-height-2000': '160px',
|
|
348
|
+
'lu-min-height-2500': '200px',
|
|
349
|
+
'lu-min-height-3000': '240px',
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
export const customLogoSize = {
|
|
353
|
+
'lu-primary-logo': '75px',
|
|
354
|
+
'lu-secondary-logo': '32px',
|
|
355
|
+
'lu-favicon-logo': '32px'
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
export const customSpacing = {
|
|
359
|
+
'lu-space-0': '0px',
|
|
360
|
+
'lu-space-050': '4px',
|
|
361
|
+
'lu-space-100': '8px',
|
|
362
|
+
'lu-space-150': '12px',
|
|
363
|
+
'lu-space-200': '16px',
|
|
364
|
+
'lu-space-250': '20px',
|
|
365
|
+
'lu-space-300': '24px',
|
|
366
|
+
'lu-space-400': '32px',
|
|
367
|
+
'lu-space-500': '40px',
|
|
368
|
+
'lu-space-600': '48px',
|
|
369
|
+
'lu-space-800': '64px',
|
|
370
|
+
'lu-space-1000': '80px',
|
|
371
|
+
'lu-space-1500': '120px',
|
|
372
|
+
'lu-space-2000': '160px',
|
|
373
|
+
'lu-space-2500': '200px',
|
|
374
|
+
'lu-space-3000': '240px'
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
export const customOpacity = {
|
|
378
|
+
'lu-opacity-0': '0.0',
|
|
379
|
+
'lu-opacity-5': '0.05',
|
|
380
|
+
'lu-opacity-10': '0.1',
|
|
381
|
+
'lu-opacity-15': '0.15',
|
|
382
|
+
'lu-opacity-20': '0.2',
|
|
383
|
+
'lu-opacity-25': '0.25',
|
|
384
|
+
'lu-opacity-30': '0.3',
|
|
385
|
+
'lu-opacity-40': '0.4',
|
|
386
|
+
'lu-opacity-50': '0.5',
|
|
387
|
+
'lu-opacity-60': '0.6',
|
|
388
|
+
'lu-opacity-70': '0.7',
|
|
389
|
+
'lu-opacity-75': '0.75',
|
|
390
|
+
'lu-opacity-80': '0.8',
|
|
391
|
+
'lu-opacity-90': '0.9',
|
|
392
|
+
'lu-opacity-95': '0.95',
|
|
393
|
+
'lu-opacity-100': '1',
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
export const customBorderWidth = {
|
|
397
|
+
'lu-border-width-0125': '1px',
|
|
398
|
+
'lu-border-width-025': '2px',
|
|
399
|
+
'lu-border-width-050': '4px',
|
|
400
|
+
'lu-border-width-100': '8px',
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
export const customBorderRadius = {
|
|
404
|
+
'lu-border-rounded-none': '0px',
|
|
405
|
+
'lu-border-rounded-xs': '2px',
|
|
406
|
+
'lu-border-rounded-sm': '4px',
|
|
407
|
+
'lu-border-rounded-md': '6px',
|
|
408
|
+
'lu-border-rounded-lg': '8px',
|
|
409
|
+
'lu-border-rounded-xl': '12px',
|
|
410
|
+
'lu-border-rounded-2xl': '16px',
|
|
411
|
+
'lu-border-rounded-3xl': '24px',
|
|
412
|
+
'lu-border-rounded-full': '9999px',
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
export const customAspectRatio = {
|
|
416
|
+
'lu-aspect-square': '1 / 1',
|
|
417
|
+
'lu-aspect-2/1-landsc': '2 / 1',
|
|
418
|
+
'lu-aspect-1/2-por': '1 / 2',
|
|
419
|
+
'lu-aspect-3/2-landsc': '3 / 2',
|
|
420
|
+
'lu-aspect-2/3-por': '2 / 3',
|
|
421
|
+
'lu-aspect-4/3-landsc': '4/3',
|
|
422
|
+
'lu-aspect-3/4-por': '3 / 4',
|
|
423
|
+
'lu-aspect-5/4-landsc': '5 / 4',
|
|
424
|
+
'lu-aspect-4/5-por': '4 / 5',
|
|
425
|
+
'lu-aspect-7/5-landsc': '7 / 5',
|
|
426
|
+
'lu-aspect-5/7-por': '5 / 7',
|
|
427
|
+
'lu-aspect-16/9-landsc': '16 / 9',
|
|
428
|
+
'lu-aspect-9/16-por': '9 / 16',
|
|
429
|
+
'lu-aspect-21/9-landscape': '21 / 9',
|
|
430
|
+
'lu-aspect-9/21-por': '9 / 21',
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
export const customBoxShadow = {
|
|
434
|
+
'lu-shadow-xs': '0px 4px 4px 0 rgba(52, 52, 52, 0.05)',
|
|
435
|
+
'lu-shadow-sm': '0px 4px 8px 0 rgba(52, 52, 52, 0.1)',
|
|
436
|
+
'lu-shadow-md': '0px 4px 12px 0 rgba(52, 52, 52, 0.15)',
|
|
437
|
+
'lu-shadow-lg': '0px 4px 18px 0 rgba(52, 52, 52, 0.15)',
|
|
438
|
+
'lu-shadow-xl': '0px 8px 24px 0 rgba(52, 52, 52, 0.15)',
|
|
439
|
+
}
|