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.
Files changed (45) hide show
  1. package/.eslintrc.json +6 -0
  2. package/.storybook/main.ts +20 -0
  3. package/.storybook/preview.ts +15 -0
  4. package/README.md +36 -0
  5. package/_test_/Color.test.js +42 -0
  6. package/app/favicon.ico +0 -0
  7. package/app/globals.css +27 -0
  8. package/app/layout.tsx +22 -0
  9. package/app/page.tsx +113 -0
  10. package/components/Color/Color.stories.tsx +87 -0
  11. package/components/Color/Color.tsx +19 -0
  12. package/components/Typography/Typography.stories.tsx +59 -0
  13. package/components/Typography/Typography.tsx +8 -0
  14. package/dist/app/layout.d.ts +6 -0
  15. package/dist/app/layout.jsx +13 -0
  16. package/dist/app/page.d.ts +1 -0
  17. package/dist/app/page.jsx +71 -0
  18. package/dist/components/Color/Color.d.ts +3 -0
  19. package/dist/components/Color/Color.jsx +16 -0
  20. package/dist/components/Color/Color.stories.d.ts +10 -0
  21. package/dist/components/Color/Color.stories.jsx +76 -0
  22. package/dist/components/Typography/Typography.d.ts +3 -0
  23. package/dist/components/Typography/Typography.jsx +7 -0
  24. package/dist/components/Typography/Typography.stories.d.ts +5 -0
  25. package/dist/components/Typography/Typography.stories.jsx +51 -0
  26. package/dist/global.css +8806 -0
  27. package/dist/index.d.ts +3 -0
  28. package/dist/index.js +3 -0
  29. package/dist/tailwind.config.d.ts +3 -0
  30. package/dist/tailwind.config.js +75 -0
  31. package/dist/utils/index.d.ts +305 -0
  32. package/dist/utils/index.js +413 -0
  33. package/index.ts +3 -0
  34. package/jest.config.js +23 -0
  35. package/jest.setup.js +25 -0
  36. package/next.config.js +4 -0
  37. package/package-lock.json +12682 -0
  38. package/package.json +60 -0
  39. package/postcss.config.js +6 -0
  40. package/public/next.svg +1 -0
  41. package/public/vercel.svg +1 -0
  42. package/tailwind.config.ts +89 -0
  43. package/tsconfig.json +50 -0
  44. package/types/interface.d.ts +18 -0
  45. 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
+ }
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
@@ -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
+ }