✨feat: Support TailwindCSS V3
Signed-off-by: Apple\Apple <zeraturing@foxmail.com>
This commit is contained in:
@@ -12,21 +12,21 @@
|
|||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
"dayjs": "^1.11.11",
|
"dayjs": "^1.11.11",
|
||||||
"history": "^5.3.0",
|
"history": "^5.3.0",
|
||||||
|
"i18next": "^23.16.8",
|
||||||
|
"i18next-browser-languagedetector": "^7.2.0",
|
||||||
"marked": "^4.1.1",
|
"marked": "^4.1.1",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-dropzone": "^14.2.3",
|
"react-dropzone": "^14.2.3",
|
||||||
"react-fireworks": "^1.0.4",
|
"react-fireworks": "^1.0.4",
|
||||||
|
"react-i18next": "^13.0.0",
|
||||||
"react-router-dom": "^6.3.0",
|
"react-router-dom": "^6.3.0",
|
||||||
"react-telegram-login": "^1.1.2",
|
"react-telegram-login": "^1.1.2",
|
||||||
"react-toastify": "^9.0.8",
|
"react-toastify": "^9.0.8",
|
||||||
"react-turnstile": "^1.0.5",
|
"react-turnstile": "^1.0.5",
|
||||||
"semantic-ui-offline": "^2.5.0",
|
"semantic-ui-offline": "^2.5.0",
|
||||||
"semantic-ui-react": "^2.1.3",
|
"semantic-ui-react": "^2.1.3",
|
||||||
"sse": "https://github.com/mpetazzoni/sse.js",
|
"sse": "https://github.com/mpetazzoni/sse.js"
|
||||||
"i18next": "^23.16.8",
|
|
||||||
"react-i18next": "^13.0.0",
|
|
||||||
"i18next-browser-languagedetector": "^7.2.0"
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
@@ -54,9 +54,13 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@douyinfe/semi-webpack-plugin": "^2.78.0",
|
||||||
"@so1ve/prettier-config": "^3.1.0",
|
"@so1ve/prettier-config": "^3.1.0",
|
||||||
"@vitejs/plugin-react": "^4.2.1",
|
"@vitejs/plugin-react": "^4.2.1",
|
||||||
|
"autoprefixer": "^10.4.21",
|
||||||
|
"postcss": "^8.5.3",
|
||||||
"prettier": "^3.0.0",
|
"prettier": "^3.0.0",
|
||||||
|
"tailwindcss": "^3",
|
||||||
"typescript": "4.4.2",
|
"typescript": "4.4.2",
|
||||||
"vite": "^5.2.0"
|
"vite": "^5.2.0"
|
||||||
},
|
},
|
||||||
|
|||||||
6
web/postcss.config.js
Normal file
6
web/postcss.config.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
export default {
|
||||||
|
plugins: {
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,3 +1,14 @@
|
|||||||
|
@layer tailwind-base,semi,tailwind-components,tailwind-utils;
|
||||||
|
@layer tailwind-base{
|
||||||
|
@tailwind base;
|
||||||
|
}
|
||||||
|
@layer tailwind-components{
|
||||||
|
@tailwind components;
|
||||||
|
}
|
||||||
|
@layer tailwind-utils {
|
||||||
|
@tailwind utilities;
|
||||||
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
|
import './index.css';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import ReactDOM from 'react-dom/client';
|
import ReactDOM from 'react-dom/client';
|
||||||
import { BrowserRouter } from 'react-router-dom';
|
import { BrowserRouter } from 'react-router-dom';
|
||||||
import App from './App';
|
import App from './App';
|
||||||
import HeaderBar from './components/HeaderBar';
|
import HeaderBar from './components/HeaderBar';
|
||||||
import 'semantic-ui-offline/semantic.min.css';
|
import 'semantic-ui-offline/semantic.min.css';
|
||||||
import './index.css';
|
|
||||||
import { UserProvider } from './context/User';
|
import { UserProvider } from './context/User';
|
||||||
import { ToastContainer } from 'react-toastify';
|
import { ToastContainer } from 'react-toastify';
|
||||||
import 'react-toastify/dist/ReactToastify.css';
|
import 'react-toastify/dist/ReactToastify.css';
|
||||||
|
|||||||
121
web/tailwind.config.js
Normal file
121
web/tailwind.config.js
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
export default {
|
||||||
|
content: [
|
||||||
|
"./index.html",
|
||||||
|
"./src/**/*.{js,jsx,ts,tsx}",
|
||||||
|
],
|
||||||
|
theme: {
|
||||||
|
colors: {
|
||||||
|
"semi-color-white": "var(--semi-color-white)",
|
||||||
|
"semi-color-black": "var(--semi-color-black)",
|
||||||
|
"semi-color-primary": "var(--semi-color-primary)",
|
||||||
|
"semi-color-primary-hover": "var(--semi-color-primary-hover)",
|
||||||
|
"semi-color-primary-active": "var(--semi-color-primary-active)",
|
||||||
|
"semi-color-primary-disabled": "var(--semi-color-primary-disabled)",
|
||||||
|
"semi-color-primary-light-default": "var(--semi-color-primary-light-default)",
|
||||||
|
"semi-color-primary-light-hover": "var(--semi-color-primary-light-hover)",
|
||||||
|
"semi-color-primary-light-active": "var(--semi-color-primary-light-active)",
|
||||||
|
"semi-color-secondary": "var(--semi-color-secondary)",
|
||||||
|
"semi-color-secondary-hover": "var(--semi-color-secondary-hover)",
|
||||||
|
"semi-color-secondary-active": "var(--semi-color-secondary-active)",
|
||||||
|
"semi-color-secondary-disabled": "var(--semi-color-secondary-disabled)",
|
||||||
|
"semi-color-secondary-light-default": "var(--semi-color-secondary-light-default)",
|
||||||
|
"semi-color-secondary-light-hover": "var(--semi-color-secondary-light-hover)",
|
||||||
|
"semi-color-secondary-light-active": "var(--semi-color-secondary-light-active)",
|
||||||
|
"semi-color-tertiary": "var(--semi-color-tertiary)",
|
||||||
|
"semi-color-tertiary-hover": "var(--semi-color-tertiary-hover)",
|
||||||
|
"semi-color-tertiary-active": "var(--semi-color-tertiary-active)",
|
||||||
|
"semi-color-tertiary-light-default": "var(--semi-color-tertiary-light-default)",
|
||||||
|
"semi-color-tertiary-light-hover": "var(--semi-color-tertiary-light-hover)",
|
||||||
|
"semi-color-tertiary-light-active": "var(--semi-color-tertiary-light-active)",
|
||||||
|
"semi-color-default": "var(--semi-color-default)",
|
||||||
|
"semi-color-default-hover": "var(--semi-color-default-hover)",
|
||||||
|
"semi-color-default-active": "var(--semi-color-default-active)",
|
||||||
|
"semi-color-info": "var(--semi-color-info)",
|
||||||
|
"semi-color-info-hover": "var(--semi-color-info-hover)",
|
||||||
|
"semi-color-info-active": "var(--semi-color-info-active)",
|
||||||
|
"semi-color-info-disabled": "var(--semi-color-info-disabled)",
|
||||||
|
"semi-color-info-light-default": "var(--semi-color-info-light-default)",
|
||||||
|
"semi-color-info-light-hover": "var(--semi-color-info-light-hover)",
|
||||||
|
"semi-color-info-light-active": "var(--semi-color-info-light-active)",
|
||||||
|
"semi-color-success": "var(--semi-color-success)",
|
||||||
|
"semi-color-success-hover": "var(--semi-color-success-hover)",
|
||||||
|
"semi-color-success-active": "var(--semi-color-success-active)",
|
||||||
|
"semi-color-success-disabled": "var(--semi-color-success-disabled)",
|
||||||
|
"semi-color-success-light-default": "var(--semi-color-success-light-default)",
|
||||||
|
"semi-color-success-light-hover": "var(--semi-color-success-light-hover)",
|
||||||
|
"semi-color-success-light-active": "var(--semi-color-success-light-active)",
|
||||||
|
"semi-color-danger": "var(--semi-color-danger)",
|
||||||
|
"semi-color-danger-hover": "var(--semi-color-danger-hover)",
|
||||||
|
"semi-color-danger-active": "var(--semi-color-danger-active)",
|
||||||
|
"semi-color-danger-light-default": "var(--semi-color-danger-light-default)",
|
||||||
|
"semi-color-danger-light-hover": "var(--semi-color-danger-light-hover)",
|
||||||
|
"semi-color-danger-light-active": "var(--semi-color-danger-light-active)",
|
||||||
|
"semi-color-warning": "var(--semi-color-warning)",
|
||||||
|
"semi-color-warning-hover": "var(--semi-color-warning-hover)",
|
||||||
|
"semi-color-warning-active": "var(--semi-color-warning-active)",
|
||||||
|
"semi-color-warning-light-default": "var(--semi-color-warning-light-default)",
|
||||||
|
"semi-color-warning-light-hover": "var(--semi-color-warning-light-hover)",
|
||||||
|
"semi-color-warning-light-active": "var(--semi-color-warning-light-active)",
|
||||||
|
"semi-color-focus-border": "var(--semi-color-focus-border)",
|
||||||
|
"semi-color-disabled-text": "var(--semi-color-disabled-text)",
|
||||||
|
"semi-color-disabled-border": "var(--semi-color-disabled-border)",
|
||||||
|
"semi-color-disabled-bg": "var(--semi-color-disabled-bg)",
|
||||||
|
"semi-color-disabled-fill": "var(--semi-color-disabled-fill)",
|
||||||
|
"semi-color-shadow": "var(--semi-color-shadow)",
|
||||||
|
"semi-color-link": "var(--semi-color-link)",
|
||||||
|
"semi-color-link-hover": "var(--semi-color-link-hover)",
|
||||||
|
"semi-color-link-active": "var(--semi-color-link-active)",
|
||||||
|
"semi-color-link-visited": "var(--semi-color-link-visited)",
|
||||||
|
"semi-color-border": "var(--semi-color-border)",
|
||||||
|
"semi-color-nav-bg": "var(--semi-color-nav-bg)",
|
||||||
|
"semi-color-overlay-bg": "var(--semi-color-overlay-bg)",
|
||||||
|
"semi-color-fill-0": "var(--semi-color-fill-0)",
|
||||||
|
"semi-color-fill-1": "var(--semi-color-fill-1)",
|
||||||
|
"semi-color-fill-2": "var(--semi-color-fill-2)",
|
||||||
|
"semi-color-bg-0": "var(--semi-color-bg-0)",
|
||||||
|
"semi-color-bg-1": "var(--semi-color-bg-1)",
|
||||||
|
"semi-color-bg-2": "var(--semi-color-bg-2)",
|
||||||
|
"semi-color-bg-3": "var(--semi-color-bg-3)",
|
||||||
|
"semi-color-bg-4": "var(--semi-color-bg-4)",
|
||||||
|
"semi-color-text-0": "var(--semi-color-text-0)",
|
||||||
|
"semi-color-text-1": "var(--semi-color-text-1)",
|
||||||
|
"semi-color-text-2": "var(--semi-color-text-2)",
|
||||||
|
"semi-color-text-3": "var(--semi-color-text-3)",
|
||||||
|
"semi-color-highlight-bg": "var(--semi-color-highlight-bg)",
|
||||||
|
"semi-color-highlight": "var(--semi-color-highlight)",
|
||||||
|
"semi-color-data-0": "var(--semi-color-data-0)",
|
||||||
|
"semi-color-data-1": "var(--semi-color-data-1)",
|
||||||
|
"semi-color-data-2": "var(--semi-color-data-2)",
|
||||||
|
"semi-color-data-3": "var(--semi-color-data-3)",
|
||||||
|
"semi-color-data-4": "var(--semi-color-data-4)",
|
||||||
|
"semi-color-data-5": "var(--semi-color-data-5)",
|
||||||
|
"semi-color-data-6": "var(--semi-color-data-6)",
|
||||||
|
"semi-color-data-7": "var(--semi-color-data-7)",
|
||||||
|
"semi-color-data-8": "var(--semi-color-data-8)",
|
||||||
|
"semi-color-data-9": "var(--semi-color-data-9)",
|
||||||
|
"semi-color-data-10": "var(--semi-color-data-10)",
|
||||||
|
"semi-color-data-11": "var(--semi-color-data-11)",
|
||||||
|
"semi-color-data-12": "var(--semi-color-data-12)",
|
||||||
|
"semi-color-data-13": "var(--semi-color-data-13)",
|
||||||
|
"semi-color-data-14": "var(--semi-color-data-14)",
|
||||||
|
"semi-color-data-15": "var(--semi-color-data-15)",
|
||||||
|
"semi-color-data-16": "var(--semi-color-data-16)",
|
||||||
|
"semi-color-data-17": "var(--semi-color-data-17)",
|
||||||
|
"semi-color-data-18": "var(--semi-color-data-18)",
|
||||||
|
"semi-color-data-19": "var(--semi-color-data-19)"
|
||||||
|
},
|
||||||
|
extend: {
|
||||||
|
borderRadius: {
|
||||||
|
"semi-border-radius-extra-small": "var(--semi-border-radius-extra-small)",
|
||||||
|
"semi-border-radius-small": "var(--semi-border-radius-small)",
|
||||||
|
"semi-border-radius-medium": "var(--semi-border-radius-medium)",
|
||||||
|
"semi-border-radius-large": "var(--semi-border-radius-large)",
|
||||||
|
"semi-border-radius-circle": "var(--semi-border-radius-circle)",
|
||||||
|
"semi-border-radius-full": "var(--semi-border-radius-full)",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
plugins: [],
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import react from '@vitejs/plugin-react';
|
import react from '@vitejs/plugin-react';
|
||||||
import { defineConfig, transformWithEsbuild } from 'vite';
|
import { defineConfig, transformWithEsbuild } from 'vite';
|
||||||
|
import semiWebpackPlugin from '@douyinfe/semi-webpack-plugin';
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
@@ -20,6 +21,16 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
react(),
|
react(),
|
||||||
|
{
|
||||||
|
name: 'semi-plugin',
|
||||||
|
apply: 'build',
|
||||||
|
configResolved() {
|
||||||
|
// Apply SemiWebpackPlugin during build
|
||||||
|
new semiWebpackPlugin({
|
||||||
|
cssLayer: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
],
|
],
|
||||||
optimizeDeps: {
|
optimizeDeps: {
|
||||||
force: true,
|
force: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user