diff --git a/front/.storybook/main.js b/front/.storybook/main.js index 020f4b46b..810229a2a 100644 --- a/front/.storybook/main.js +++ b/front/.storybook/main.js @@ -34,7 +34,9 @@ module.exports = { "@storybook/addon-essentials", "@storybook/addon-interactions", "@storybook/preset-create-react-app", - "@storybook/addon-coverage" + "@storybook/addon-coverage", + "@storybook/addon-styling" + ], framework: { name: '@storybook/react-webpack5', diff --git a/front/.storybook/preview.ts b/front/.storybook/preview.ts index f23541d6c..3e8cb5654 100644 --- a/front/.storybook/preview.ts +++ b/front/.storybook/preview.ts @@ -1,10 +1,24 @@ import { initialize, mswDecorator } from 'msw-storybook-addon'; import { Preview } from '@storybook/react'; +import { ThemeProvider } from '@emotion/react'; +import { withThemeFromJSXProvider } from "@storybook/addon-styling"; +import { lightTheme, darkTheme } from '../src/modules/ui/layout/styles/themes'; + initialize(); const preview: Preview = { - decorators: [mswDecorator], + decorators: [ + mswDecorator, + withThemeFromJSXProvider({ + themes: { + light: lightTheme, + dark: darkTheme, + }, + defaultTheme: "light", + Provider: ThemeProvider, + }) + ], parameters: { actions: { argTypesRegex: '^on[A-Z].*' }, controls: { diff --git a/front/package-lock.json b/front/package-lock.json index 407b0727d..9c2447bd9 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -42,6 +42,7 @@ "@storybook/addon-essentials": "^7.0.2", "@storybook/addon-interactions": "^7.0.2", "@storybook/addon-links": "^7.0.2", + "@storybook/addon-styling": "^1.0.8", "@storybook/jest": "^0.1.0", "@storybook/node-logger": "^7.0.2", "@storybook/preset-create-react-app": "^7.0.2", @@ -7344,6 +7345,177 @@ } } }, + "node_modules/@storybook/addon-styling": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-styling/-/addon-styling-1.0.8.tgz", + "integrity": "sha512-Ubi75gHNFO60Sjti2n/i3f0utERNOYcpsRkWHdzV+C26kUemLG+2riKHUt8zVbNskyJxA0EZxh84HYItRe4coA==", + "dev": true, + "dependencies": { + "@storybook/api": "^7.0.2", + "@storybook/components": "^7.0.2", + "@storybook/core-events": "^7.0.2", + "@storybook/manager-api": "^7.0.2", + "@storybook/node-logger": "^7.0.7", + "@storybook/preview-api": "^7.0.2", + "@storybook/theming": "^7.0.2", + "@storybook/types": "^7.0.2", + "css-loader": "^6.7.3", + "less-loader": "^11.1.0", + "postcss-loader": "^7.2.4", + "resolve-url-loader": "^5.0.0", + "sass-loader": "^13.2.2", + "style-loader": "^3.3.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-styling/node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/@storybook/addon-styling/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-styling/node_modules/postcss-loader": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.2.tgz", + "integrity": "sha512-c7qDlXErX6n0VT+LUsW+nwefVtTu3ORtVvK8EXuUIDcxo+b/euYqpuHlJAvePb0Af5e8uMjR/13e0lTuYifaig==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.1.3", + "jiti": "^1.18.2", + "klona": "^2.0.6", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/@storybook/addon-styling/node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/addon-styling/node_modules/sass-loader": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.1.tgz", + "integrity": "sha512-cBTxmgyVA1nXPvIK4brjJMXOMJ2v2YrQEuHqLw3LylGb3gsR6jAvdjHMcy/+JGTmmIF9SauTrLLR7bsWDMWqgg==", + "dev": true, + "dependencies": { + "klona": "^2.0.6", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-styling/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-styling/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/addon-styling/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@storybook/addon-toolbars": { "version": "7.0.18", "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.18.tgz", @@ -15647,6 +15819,19 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "peer": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/core-js": { "version": "3.30.2", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz", @@ -17261,6 +17446,20 @@ "node": ">=4" } }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -20939,6 +21138,20 @@ "node": ">= 4" } }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/immer": { "version": "9.0.21", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", @@ -21827,6 +22040,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "peer": true + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -27521,6 +27741,101 @@ "node": ">=14.0.0" } }, + "node_modules/less": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", + "dev": true, + "peer": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.2.tgz", + "integrity": "sha512-2bSaN2j13bUh/5BuwJKuY2DDWVmfBsS6oWRe8v1mGj7F0EpcL+WyWkDQVoEfsVRE4ac5/OuP44ZCaVsXWrQQ9A==", + "dev": true, + "dependencies": { + "klona": "^2.0.6" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -28582,6 +28897,50 @@ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true }, + "node_modules/needle": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", + "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -29559,6 +29918,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -31446,6 +31815,14 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", diff --git a/front/package.json b/front/package.json index 1f71eff08..2b687b55b 100644 --- a/front/package.json +++ b/front/package.json @@ -86,6 +86,7 @@ "@storybook/addon-essentials": "^7.0.2", "@storybook/addon-interactions": "^7.0.2", "@storybook/addon-links": "^7.0.2", + "@storybook/addon-styling": "^1.0.8", "@storybook/jest": "^0.1.0", "@storybook/node-logger": "^7.0.2", "@storybook/preset-create-react-app": "^7.0.2", diff --git a/front/src/App.tsx b/front/src/App.tsx index fe73a1555..6367b0bd2 100644 --- a/front/src/App.tsx +++ b/front/src/App.tsx @@ -1,9 +1,13 @@ import React, { useEffect, useState } from 'react'; import { Navigate, Route, Routes } from 'react-router-dom'; +import { ThemeProvider } from '@emotion/react'; + +import { browserPrefersDarkMode } from '@/utils/utils'; import { RequireAuth } from './modules/auth/components/RequireAuth'; import { getUserIdFromToken } from './modules/auth/services/AuthService'; import { AppLayout } from './modules/ui/layout/AppLayout'; +import { darkTheme, lightTheme } from './modules/ui/layout/styles/themes'; import { mapToUser, User } from './modules/users/interfaces/user.interface'; import { useGetCurrentUserQuery } from './modules/users/services'; import AuthCallback from './pages/auth/Callback'; @@ -12,7 +16,11 @@ import { Companies } from './pages/companies/Companies'; import { Opportunities } from './pages/opportunities/Opportunities'; import { People } from './pages/people/People'; -export function App() { +type AppProps = { + themeEnabled?: boolean; +}; + +export function App({ themeEnabled = true }: AppProps) { const [user, setUser] = useState(undefined); const userIdFromToken = getUserIdFromToken(); @@ -24,7 +32,9 @@ export function App() { } }, [data]); - return ( + const defaultTheme = browserPrefersDarkMode() ? darkTheme : lightTheme; + + const app = ( <> { @@ -68,4 +78,14 @@ export function App() { } ); + + return ( + <> + {themeEnabled ? ( + {app} + ) : ( + app + )} + + ); } diff --git a/front/src/__stories__/App.stories.tsx b/front/src/__stories__/App.stories.tsx index f4acae938..54acb3b70 100644 --- a/front/src/__stories__/App.stories.tsx +++ b/front/src/__stories__/App.stories.tsx @@ -1,10 +1,8 @@ import { MemoryRouter } from 'react-router-dom'; import { ApolloProvider } from '@apollo/client'; -import { ThemeProvider } from '@emotion/react'; import type { Meta, StoryObj } from '@storybook/react'; import { RecoilRoot } from 'recoil'; -import { lightTheme } from '@/ui/layout/styles/themes'; import { App } from '~/App'; import { FullHeightStorybookLayout } from '~/testing/FullHeightStorybookLayout'; import { graphqlMocks } from '~/testing/graphqlMocks'; @@ -22,13 +20,11 @@ type Story = StoryObj; const render = () => ( - - - - - - - + + + + + ); diff --git a/front/src/modules/ui/components/buttons/IconButton.tsx b/front/src/modules/ui/components/buttons/IconButton.tsx index 0c20a977c..d01a8cef8 100644 --- a/front/src/modules/ui/components/buttons/IconButton.tsx +++ b/front/src/modules/ui/components/buttons/IconButton.tsx @@ -12,9 +12,6 @@ const StyledIconButton = styled.button` border: none; border-radius: 50%; - background: ${(props) => props.theme.text80}; - color: ${(props) => props.theme.text100}; - transition: color 0.1s ease-in-out, background 0.1s ease-in-out; background: ${(props) => props.theme.blue}; @@ -22,7 +19,7 @@ const StyledIconButton = styled.button` cursor: pointer; &:disabled { - background: ${(props) => props.theme.quadraryBackground}; + background: ${(props) => props.theme.quaternaryBackground}; color: ${(props) => props.theme.text80}; cursor: default; } diff --git a/front/src/modules/ui/components/form/DatePicker.tsx b/front/src/modules/ui/components/form/DatePicker.tsx index d1385e9cf..87d147b76 100644 --- a/front/src/modules/ui/components/form/DatePicker.tsx +++ b/front/src/modules/ui/components/form/DatePicker.tsx @@ -166,10 +166,6 @@ const StyledContainer = styled.div` line-height: 34px; } - & .react-datepicker__day--selected { - background-color: ${(props) => props.theme.blue}; - } - & .react-datepicker__navigation--previous, & .react-datepicker__navigation--next { height: 34px; @@ -205,12 +201,26 @@ const StyledContainer = styled.div` border-color: ${(props) => props.theme.text40}; } + & .react-datepicker__day--keyboard-selected { + background-color: inherit; + } + + & .react-datepicker__day, + .react-datepicker__time-name { + color: ${(props) => props.theme.text80}; + } + + & .react-datepicker__day--selected { + background-color: ${(props) => props.theme.blue}; + color: ${(props) => props.theme.text0}; + } + & .react-datepicker__day--outside-month { color: ${(props) => props.theme.text40}; } - & .react-datepicker__day--keyboard-selected { - background-color: inherit; + & .react-datepicker__day:hover { + color: ${(props) => props.theme.text40}; } `; diff --git a/front/src/modules/ui/layout/AppLayout.tsx b/front/src/modules/ui/layout/AppLayout.tsx index 27ac62ce9..6976aeddd 100644 --- a/front/src/modules/ui/layout/AppLayout.tsx +++ b/front/src/modules/ui/layout/AppLayout.tsx @@ -1,10 +1,8 @@ -import { ThemeProvider } from '@emotion/react'; import styled from '@emotion/styled'; import { User } from '@/users/interfaces/user.interface'; import { Navbar } from './navbar/Navbar'; -import { lightTheme } from './styles/themes'; const StyledLayout = styled.div` display: flex; @@ -31,17 +29,15 @@ type OwnProps = { export function AppLayout({ children, user }: OwnProps) { const userIsAuthenticated = !!user; return ( - - - {userIsAuthenticated ? ( - <> - - {children} - - ) : ( - children - )} - - + + {userIsAuthenticated ? ( + <> + + {children} + + ) : ( + children + )} + ); } diff --git a/front/src/modules/ui/layout/navbar/WorkspaceContainer.tsx b/front/src/modules/ui/layout/navbar/WorkspaceContainer.tsx index 7eb166285..6c20c1d81 100644 --- a/front/src/modules/ui/layout/navbar/WorkspaceContainer.tsx +++ b/front/src/modules/ui/layout/navbar/WorkspaceContainer.tsx @@ -36,6 +36,7 @@ const StyledName = styled.div` font-family: 'Inter'; font-weight: 500; font-size: ${(props) => props.theme.fontSizeLarge}; + color: ${(props) => props.theme.text80}; `; function WorkspaceContainer({ workspace }: OwnProps) { diff --git a/front/src/modules/ui/layout/styles/themes.ts b/front/src/modules/ui/layout/styles/themes.ts index 58073dd20..0a6267f64 100644 --- a/front/src/modules/ui/layout/styles/themes.ts +++ b/front/src/modules/ui/layout/styles/themes.ts @@ -27,10 +27,11 @@ const commonTheme = { const lightThemeSpecific = { noisyBackground: `url(${LightNoise.toString()});`, + primaryBackground: '#fff', secondaryBackground: '#fcfcfc', tertiaryBackground: '#f5f5f5', - quadraryBackground: '#ebebeb', + quaternaryBackground: '#ebebeb', pinkBackground: '#ffe5f4', greenBackground: '#e6fff2', @@ -68,8 +69,8 @@ const darkThemeSpecific: typeof lightThemeSpecific = { noisyBackground: `url(${DarkNoise.toString()});`, primaryBackground: '#141414', secondaryBackground: '#171717', - tertiaryBackground: '#333333', - quadraryBackground: '#444444', + tertiaryBackground: '#1B1B1B', + quaternaryBackground: '#1D1D1D', pinkBackground: '#cc0078', greenBackground: '#1e7e50', @@ -115,6 +116,7 @@ export const textInputStyle = (props: any) => border: none; outline: none; background-color: transparent; + color: ${props.theme.text80}; &::placeholder, &::-webkit-input-placeholder { diff --git a/front/src/modules/utils/utils.ts b/front/src/modules/utils/utils.ts index c0a87f03c..c05fa5ce8 100644 --- a/front/src/modules/utils/utils.ts +++ b/front/src/modules/utils/utils.ts @@ -9,3 +9,7 @@ export const humanReadableDate = (date: Date) => { export const getLogoUrlFromDomainName = (domainName?: string): string => { return `https://api.faviconkit.com/${domainName}/144`; }; + +export const browserPrefersDarkMode = (): boolean => { + return window.matchMedia('(prefers-color-scheme: dark)').matches; +}; diff --git a/front/src/pages/companies/__stories__/shared.tsx b/front/src/pages/companies/__stories__/shared.tsx index f81301681..d50e7fb88 100644 --- a/front/src/pages/companies/__stories__/shared.tsx +++ b/front/src/pages/companies/__stories__/shared.tsx @@ -1,11 +1,9 @@ import { MemoryRouter } from 'react-router-dom'; import { ApolloProvider } from '@apollo/client'; -import { ThemeProvider } from '@emotion/react'; import { graphql } from 'msw'; import { RecoilRoot } from 'recoil'; import { GraphqlQueryCompany } from '@/companies/interfaces/company.interface'; -import { lightTheme } from '@/ui/layout/styles/themes'; import { GraphqlQueryUser } from '@/users/interfaces/user.interface'; import { FullHeightStorybookLayout } from '~/testing/FullHeightStorybookLayout'; import { filterAndSortData } from '~/testing/mock-data'; @@ -48,13 +46,11 @@ export function render() { return ( - - - - - - - + + + + + ); diff --git a/front/src/pages/people/__stories__/shared.tsx b/front/src/pages/people/__stories__/shared.tsx index 3e520cf9e..4e6e91078 100644 --- a/front/src/pages/people/__stories__/shared.tsx +++ b/front/src/pages/people/__stories__/shared.tsx @@ -1,9 +1,7 @@ import { MemoryRouter } from 'react-router-dom'; import { ApolloProvider } from '@apollo/client'; -import { ThemeProvider } from '@emotion/react'; import { RecoilRoot } from 'recoil'; -import { lightTheme } from '@/ui/layout/styles/themes'; import { FullHeightStorybookLayout } from '~/testing/FullHeightStorybookLayout'; import { mockedClient } from '~/testing/mockedClient'; @@ -13,13 +11,11 @@ export function render() { return ( - - - - - - - + + + + + ); diff --git a/front/src/testing/mock-data/users.ts b/front/src/testing/mock-data/users.ts index 7ec082694..02f92db72 100644 --- a/front/src/testing/mock-data/users.ts +++ b/front/src/testing/mock-data/users.ts @@ -14,7 +14,7 @@ export const mockedUsersData: Array = [ id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b', displayName: 'Twenty', domainName: 'twenty.com', - logo: 'data:image/png;base64,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', + logo: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACb0lEQVR4nO2VO4taQRTHr3AblbjxEVlwCwVhg7BoqqCIjy/gAyyFWNlYBOxsfH0KuxgQGwXRUkGuL2S7i1barGAgiwbdW93SnGOc4BonPiKahf3DwXFmuP/fPM4ZlvmlTxAhCBdzHnEQWYiv7Mr4C3NeuVYhQYDPzOUUQgDLBQGcLHNhvQK8DACPx8PTxiqVyvISG43GbyaT6Qfpn06n0m63e/tPAPF4vJ1MJu8kEsnWTCkWi1yr1RKGw+GDRqPBOTfr44vFQvD7/Q/lcpmaaVQAr9fLp1IpO22c47hGOBz+MB6PH+Vy+VYDAL8qlUoGtVotzOfzq4MAgsHgE/6KojiQyWR/bKVSqbSszHFM8Pl8z1YK48JsNltCOBwOnrYLO+8AAIjb+nHbycoTiUQfDJ7tFq4YAHiVSmXBxcD41u8flQU8z7fhzO0r83atVns3Go3u9Xr9x0O/RQXo9/tsIBBg6vX606a52Wz+bZ7P5/WwG29gxSJzhKgA6XTaDoFNF+krFAocmC//4yWEcSf2wTm7mCO19xFgSsKOLI16vV7b7XY7mRNoLwA0JymJ5uQIzgIAuX5PzDElT2m+E8BqtQ4ymcx7Yq7T6a6ZE4sKgOadTucaCwkxp1UzlEKh0GDxIXOwDWHAdi6Xe3swQDQa/Q7mywoolUpvsaptymazDWKxmBHTlWXZm405BFZoNpuGgwEmk4mE2SGtVivii4f1AO7J3ZopkQCQj7Ar1FeRChCJRJzVapX6DKNIfSc1Ax+wtQWQ55h6bH8FWDfYV4fO3wlwDr0C/BcADYiTPCxHqIEA2QsCZAkAKnRGkMbKN/sTX5YHPQ1e7SkAAAAASUVORK5CYII=', }, }, }, @@ -31,7 +31,7 @@ export const mockedUsersData: Array = [ id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b', displayName: 'Twenty', domainName: 'twenty.com', - logo: 'data:image/png;base64,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', + logo: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACb0lEQVR4nO2VO4taQRTHr3AblbjxEVlwCwVhg7BoqqCIjy/gAyyFWNlYBOxsfH0KuxgQGwXRUkGuL2S7i1barGAgiwbdW93SnGOc4BonPiKahf3DwXFmuP/fPM4ZlvmlTxAhCBdzHnEQWYiv7Mr4C3NeuVYhQYDPzOUUQgDLBQGcLHNhvQK8DACPx8PTxiqVyvISG43GbyaT6Qfpn06n0m63e/tPAPF4vJ1MJu8kEsnWTCkWi1yr1RKGw+GDRqPBOTfr44vFQvD7/Q/lcpmaaVQAr9fLp1IpO22c47hGOBz+MB6PH+Vy+VYDAL8qlUoGtVotzOfzq4MAgsHgE/6KojiQyWR/bKVSqbSszHFM8Pl8z1YK48JsNltCOBwOnrYLO+8AAIjb+nHbycoTiUQfDJ7tFq4YAHiVSmXBxcD41u8flQU8z7fhzO0r83atVns3Go3u9Xr9x0O/RQXo9/tsIBBg6vX606a52Wz+bZ7P5/WwG29gxSJzhKgA6XTaDoFNF+krFAocmC//4yWEcSf2wTm7mCO19xFgSsKOLI16vV7b7XY7mRNoLwA0JymJ5uQIzgIAuX5PzDElT2m+E8BqtQ4ymcx7Yq7T6a6ZE4sKgOadTucaCwkxp1UzlEKh0GDxIXOwDWHAdi6Xe3swQDQa/Q7mywoolUpvsaptymazDWKxmBHTlWXZm405BFZoNpuGgwEmk4mE2SGtVivii4f1AO7J3ZopkQCQj7Ar1FeRChCJRJzVapX6DKNIfSc1Ax+wtQWQ55h6bH8FWDfYV4fO3wlwDr0C/BcADYiTPCxHqIEA2QsCZAkAKnRGkMbKN/sTX5YHPQ1e7SkAAAAASUVORK5CYII=', }, }, }, diff --git a/front/src/testing/renderWrappers.tsx b/front/src/testing/renderWrappers.tsx index 83caed813..4d712be9b 100644 --- a/front/src/testing/renderWrappers.tsx +++ b/front/src/testing/renderWrappers.tsx @@ -1,11 +1,8 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; import { ApolloProvider } from '@apollo/client'; -import { ThemeProvider } from '@emotion/react'; import { RecoilRoot } from 'recoil'; -import { lightTheme } from '@/ui/layout/styles/themes'; - import { ComponentStorybookLayout } from './ComponentStorybookLayout'; import { FullHeightStorybookLayout } from './FullHeightStorybookLayout'; import { mockedClient } from './mockedClient'; @@ -15,11 +12,9 @@ export function getRenderWrapperForPage(children: React.ReactElement) { return ( - - - {children} - - + + {children} + ); @@ -31,9 +26,7 @@ export function getRenderWrapperForComponent(children: React.ReactElement) { return ( - - {children} - + {children} ); diff --git a/server/src/database/seeds/workspaces.ts b/server/src/database/seeds/workspaces.ts index 4c8bd9d2c..8483397e8 100644 --- a/server/src/database/seeds/workspaces.ts +++ b/server/src/database/seeds/workspaces.ts @@ -7,7 +7,7 @@ export const seedWorkspaces = async (prisma: PrismaClient) => { id: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', displayName: 'Twenty', domainName: 'twenty.com', - logo: 'data:image/png;base64,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', + logo: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACb0lEQVR4nO2VO4taQRTHr3AblbjxEVlwCwVhg7BoqqCIjy/gAyyFWNlYBOxsfH0KuxgQGwXRUkGuL2S7i1barGAgiwbdW93SnGOc4BonPiKahf3DwXFmuP/fPM4ZlvmlTxAhCBdzHnEQWYiv7Mr4C3NeuVYhQYDPzOUUQgDLBQGcLHNhvQK8DACPx8PTxiqVyvISG43GbyaT6Qfpn06n0m63e/tPAPF4vJ1MJu8kEsnWTCkWi1yr1RKGw+GDRqPBOTfr44vFQvD7/Q/lcpmaaVQAr9fLp1IpO22c47hGOBz+MB6PH+Vy+VYDAL8qlUoGtVotzOfzq4MAgsHgE/6KojiQyWR/bKVSqbSszHFM8Pl8z1YK48JsNltCOBwOnrYLO+8AAIjb+nHbycoTiUQfDJ7tFq4YAHiVSmXBxcD41u8flQU8z7fhzO0r83atVns3Go3u9Xr9x0O/RQXo9/tsIBBg6vX606a52Wz+bZ7P5/WwG29gxSJzhKgA6XTaDoFNF+krFAocmC//4yWEcSf2wTm7mCO19xFgSsKOLI16vV7b7XY7mRNoLwA0JymJ5uQIzgIAuX5PzDElT2m+E8BqtQ4ymcx7Yq7T6a6ZE4sKgOadTucaCwkxp1UzlEKh0GDxIXOwDWHAdi6Xe3swQDQa/Q7mywoolUpvsaptymazDWKxmBHTlWXZm405BFZoNpuGgwEmk4mE2SGtVivii4f1AO7J3ZopkQCQj7Ar1FeRChCJRJzVapX6DKNIfSc1Ax+wtQWQ55h6bH8FWDfYV4fO3wlwDr0C/BcADYiTPCxHqIEA2QsCZAkAKnRGkMbKN/sTX5YHPQ1e7SkAAAAASUVORK5CYII=', }, }); await prisma.workspace.upsert({ @@ -17,7 +17,7 @@ export const seedWorkspaces = async (prisma: PrismaClient) => { id: 'twenty-dev-7ed9d212-1c25-4d02-bf25-6aeccf7ea420', displayName: 'Twenty Dev', domainName: 'dev.twenty.com', - logo: 'data:image/png;base64,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', + logo: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACb0lEQVR4nO2VO4taQRTHr3AblbjxEVlwCwVhg7BoqqCIjy/gAyyFWNlYBOxsfH0KuxgQGwXRUkGuL2S7i1barGAgiwbdW93SnGOc4BonPiKahf3DwXFmuP/fPM4ZlvmlTxAhCBdzHnEQWYiv7Mr4C3NeuVYhQYDPzOUUQgDLBQGcLHNhvQK8DACPx8PTxiqVyvISG43GbyaT6Qfpn06n0m63e/tPAPF4vJ1MJu8kEsnWTCkWi1yr1RKGw+GDRqPBOTfr44vFQvD7/Q/lcpmaaVQAr9fLp1IpO22c47hGOBz+MB6PH+Vy+VYDAL8qlUoGtVotzOfzq4MAgsHgE/6KojiQyWR/bKVSqbSszHFM8Pl8z1YK48JsNltCOBwOnrYLO+8AAIjb+nHbycoTiUQfDJ7tFq4YAHiVSmXBxcD41u8flQU8z7fhzO0r83atVns3Go3u9Xr9x0O/RQXo9/tsIBBg6vX606a52Wz+bZ7P5/WwG29gxSJzhKgA6XTaDoFNF+krFAocmC//4yWEcSf2wTm7mCO19xFgSsKOLI16vV7b7XY7mRNoLwA0JymJ5uQIzgIAuX5PzDElT2m+E8BqtQ4ymcx7Yq7T6a6ZE4sKgOadTucaCwkxp1UzlEKh0GDxIXOwDWHAdi6Xe3swQDQa/Q7mywoolUpvsaptymazDWKxmBHTlWXZm405BFZoNpuGgwEmk4mE2SGtVivii4f1AO7J3ZopkQCQj7Ar1FeRChCJRJzVapX6DKNIfSc1Ax+wtQWQ55h6bH8FWDfYV4fO3wlwDr0C/BcADYiTPCxHqIEA2QsCZAkAKnRGkMbKN/sTX5YHPQ1e7SkAAAAASUVORK5CYII=', }, }); };