c737028dd6
## Summary Moves the custom ESLint rules from `tools/eslint-rules` to `packages/twenty-eslint-rules` for better organization within the monorepo packages structure. ## Changes - Move `eslint-rules` from `tools/` to `packages/twenty-eslint-rules` - Use `loadWorkspaceRules` from `@nx/eslint-plugin` to load custom rules - Update all ESLint configs to use the `twenty/` rule prefix instead of `@nx/workspace-` - Update `project.json`, `jest.config.mjs` with new paths - Update `package.json` workspaces and `nx.json` cache inputs - Update Dockerfile reference ## Technical Details The custom ESLint rules are now loaded using Nx's `loadWorkspaceRules` utility which: - Handles TypeScript transpilation automatically - Allows loading workspace rules from any directory - Provides a cleaner approach than the previous `@nx/workspace-` convention ## Testing - Verified all 17 custom ESLint rules load correctly from the new location - Verified linting works on dependent packages (twenty-front, twenty-server, etc.)
64 lines
1.3 KiB
TypeScript
64 lines
1.3 KiB
TypeScript
/* eslint-disable twenty/no-hardcoded-colors */
|
|
|
|
const grayScale = {
|
|
gray100: '#000000',
|
|
gray90: '#141414',
|
|
gray85: '#171717',
|
|
gray80: '#1b1b1b',
|
|
gray75: '#1d1d1d',
|
|
gray70: '#222222',
|
|
gray65: '#292929',
|
|
gray60: '#333333',
|
|
gray55: '#4c4c4c',
|
|
gray50: '#666666',
|
|
gray45: '#818181',
|
|
gray40: '#999999',
|
|
gray35: '#b3b3b3',
|
|
gray30: '#cccccc',
|
|
gray25: '#d6d6d6',
|
|
gray20: '#ebebeb',
|
|
gray15: '#f1f1f1',
|
|
gray10: '#fcfcfc',
|
|
gray0: '#ffffff',
|
|
};
|
|
|
|
const colors = {
|
|
blue40: '#5e90f2',
|
|
};
|
|
|
|
export const emailTheme = {
|
|
font: {
|
|
colors: {
|
|
highlighted: grayScale.gray60,
|
|
primary: grayScale.gray50,
|
|
tertiary: grayScale.gray35,
|
|
inverted: grayScale.gray0,
|
|
blue: colors.blue40,
|
|
},
|
|
family: 'Trebuchet MS', // Google Inter not working, we need to use a web safe font, see https://templates.mailchimp.com/design/typography/
|
|
weight: {
|
|
regular: 400,
|
|
bold: 600,
|
|
},
|
|
size: {
|
|
sm: '12px',
|
|
md: '13px',
|
|
lg: '16px',
|
|
xl: '24px',
|
|
},
|
|
lineHeight: '20px',
|
|
},
|
|
border: {
|
|
radius: { sm: '4px', md: '8px' },
|
|
color: { highlighted: grayScale.gray20 },
|
|
},
|
|
background: {
|
|
colors: { highlight: grayScale.gray15 },
|
|
button: grayScale.gray60,
|
|
transparent: {
|
|
medium: 'rgba(0, 0, 0, 0.08)',
|
|
light: 'rgba(0, 0, 0, 0.04)',
|
|
},
|
|
},
|
|
};
|