From 5c17d32647e74ea8a6460e997f4ccde12b047c33 Mon Sep 17 00:00:00 2001 From: logan Date: Wed, 14 Oct 2026 20:59:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A1=A5=E9=BD=90=E6=A0=B9=E7=BA=A7=20t?= =?UTF-8?q?ailwind/postcss/index.html/public=EF=BC=88GUI=20=E7=99=BD?= =?UTF-8?q?=E5=BA=95=E6=A0=B7=E5=BC=8F=E4=B8=A2=E5=A4=B1=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/BACKLOG.md | 1 + postcss.config.js | 6 ++++ server/bin/opsxdb-server | Bin 47708450 -> 47708450 bytes tailwind.config.ts | 73 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 postcss.config.js create mode 100644 tailwind.config.ts diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md index 3be8a54..a2bd6b0 100644 --- a/docs/BACKLOG.md +++ b/docs/BACKLOG.md @@ -238,3 +238,4 @@ | 「连接已断开」横幅移除 | 已做:整条顶部红色横幅删除(状态行已有提示,顶部横幅不友好);重连能力保留 | | SQL 高亮 DataGrip 风 | 已做:关键字亮蓝加粗 / 字符串红 / 数字浅绿 / 注释灰斜体 / 标识符浅灰白;light 同构对齐 IntelliJ | | opsxapi 迁移 | 回滚到可用基线 6452026(apps 布局保留)——用户确认只做 opsxdb;迁移半成品已弃 | +| 修复:GUI 样式全丢(白底裸控件) | 已修:根级迁移漏了 tailwind.config.ts / postcss.config.js(content 路径已改 ./src + ./packages/ui)与 index.html/public 资源;CSS 产物 12KB→32KB(Tailwind 全量恢复)。教训:单包迁移 checklist 应含样式链 | diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2aa7205 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/server/bin/opsxdb-server b/server/bin/opsxdb-server index 69100c4b5f2fe7c198a2a11233a980f93f32b54e..ff372c3f06bc781a2de3e652862cbd5366f5b376 100755 GIT binary patch delta 3773 zcmbW(_g@cM9LMq7*C;ZwA~TU$N>iB?DoRphw@WEm$tIhSJu(`yi_Gk@cahP>y}I{W z_qyES-s`%TJKnGRC)^)i&&TJNbACJL@yU5tVV=frMf>>%hXe)Ld3*Uy9_!^XJ<-Q2(5b(@cYIVtf}O8} zV?gqx5rmC50u39Kd)lylh zR;snKR&7*U)lRin9aKkUqij_tWvA>_XXT(Am6LK-F3MGPQEtjzbyeL|chy7nRK1jk z@>E``x9X$%DsSbZd{sZyU->D2H9!TZfhtf9Qb8(M4OT-`h#IPfso`pb8mUI9(JEAh zsc;pcB2|=%Rxv78jZtwbUX4`=Dp8G7Nou^BpeCwGYO+dJQ&ftYs-~&wYKEGrW~td~ zj+(1d)jTy{El>;9BDGj8QA^b_m8O=f6>6nQSF6-&wMMN~>(qL+L2Xo<)Mk~Twy3RY zo7%22RhG(DIckT>RXf!#wOj2`d(}R*U*)NMbwC|d1?rGGtd6Lo>XalvFzEEGPr>a7IrM_0*sAuZAdZAvbSL$2!oqDalS8vo?^@I9R{iJ?Y@6<2qSM{5E zuYOk_)F0|k^-+CNf2qIKKWTdV=?V-`2`WPss0zkl0@a{8m_iMx3ALa${C8g+rn*oM z>O%uChlbDyETAzofu_(5nnMe)gqC0ht)MknLmOxd?Vvq$fR12eRHVPcD72(qgrl>Q zLu7=LbC(!5`_4`gkq*wzF_95bE)fnfPOeV&(Ov9a?ZacjGhaWoHELePxwE^oTYAk3 zTO-j4?7$v6g9A8%6F7qlxI!0j19#{O-Jm=4fS%9`JirsYpf~h^zTgc$;0yhrKlp(^ z41fR_2!SvNf*=?M!w?98p)d@F!w47&qhK_ILKuWY1Vlm7430w~oPd*X3QofrI1A^X2#Vo6T!4#k2`=)5AMSQcnIb2IXr^L@C3eqFX1Uvz*q1!d;`zmIlO?E@Cv?#@8C6j4{zWt`~W|~ zPw+FmgJ0lR_zm8}@9+WsfIs0Qe1gB=Z}`V3t!9NmgAo{@5>$pNP!){91gb%GFohaW z6KX+iFoQZ!7wSQMXaMHW5E_96G=?V76q-SEXaSbc60D#Vv<7Qv18t!lw1*DR5p2K~ zI)NS7LuYURM{ojXZ~<570&d_AU7;IvhaS)qdVvRcf*16LKF}Au!3TVyAM^)5@P`2q z00SWq20;)6!(bQ!Autq%!EhJ>BViPbhENEDaEO3Nh=OQ{fmj#=aS#tsa##T?Astr1 zYFGnnVI8c84X_b5!Dh&SEwB}~!FI@mEXal&*a5k)6L!IF*aLfEAMA%b$cF=P5DMTB z9EKxs6pq1hD1;Mm5>6S4^!*vKlm6ENkjVmIlWrYw#vsnZIVgf+I1d-#B3y#Ya0RZy zHMkBp;3nLH+fV|fa0l)himU_54Be~r%IcYHkKY= z<@xTBSr4n1=`H=eOft$Ac)e&)zcltnYQYDW@btK@!7FlSI%PD@P0tA~Gl+YJqMYFS zhOiNq7MUea<_zE2!`dP!KkeX-Ud3;N6K(TmzBf$@`K(Rp?(lT0g8K&X03I5OtP08v x#Z4`zw)iZ6WKvY6@|T4!rhVTJ%{IQ0lKME{-Lr;o3TMAcIa_47U2d?n`4`XCiy{C3 delta 3773 zcmbW(_g@cM9LMoTUm+`dlZtHGi!v)xNkg{wQpiYT&mv^YjIxE2eUX)2R>obr_i}Mv z?sdcEUha6m?w@dfcs(DV^TRp6o%1+373Ga`RDPIA9n%+Ua|#;USv>QNF02t2eY`Nq zWLwpsxY#ZOe4WBQl4DcDC&Wgl1|%d$SP!#J2?=uYiw+9%_eu$k=pW)Z*52CN&fY(H zQnF`!sPBXTn?B)Dj!r4oHUsSk*!xZK3Ji8hPE3h+9_JI=e|}`0w8%O}%AhJKV^vvI zQB{?Rs-~)|8mgwMrA$?A#s0dgo~o}JsD`SMYOI>5rmC50u3D&;%1pIV=E_1@s@AHF zvQlkTJJnuwP#sk#)me2>U6r-6QMSrX*((R-sGO9ua#60To9eFIl)LJoda7Qkx9X$% zDi7tUyi`BcUwNwm%18MsKQ&PKt3fJ21*#wwtOlzPHAD?n!_;s!LXA|T)Myo|!c@45 zP?0K1MXMMUtKw9=8lw_aq8h8lsqrdFO;8inBsEzjt0^i)O;yuWs+z85sF`Y(nyu!j zxoV!8uNJ61wfBqB7J{wM;EnnQDbvsaC1gYK>Z})~WR>OKnga)h4xBZBbiQ zw%Vq)s~nZ9cBq|dm)foNsJ&{R+OP7|0d-IvQu(St9ae?vh&rl{spIN|I;l>nFVtyu zMx9kf>YO^SE~ty@k}6i0)fIJBT~pW94RuqMs8V%H-Bx$hU3E{Dsr%}IdZ-?$FV$D- zYxRx#Ry|hb>O1wl`awNWPt}j=nR>2XsGrnJ^|N}VUaMc!uj-BZO;xD3>YaM8epesV zNA-vLQ+-mO)nDpw^-qTGex?EgR03nD3{{{im_RkC4mF@A)B;ne4gZ~2m#H4qhX&9P z8bM=d0!^VAG=~<@63n0#n1cmaLThLPR?rsOL3`)`9ibC+HY(CvVH8^0-oeo+Cfv!@ z(IFzrCfqe5%FZ_2B}Qv!=V(_4XAQ355w@;Tj@d6CcQG=nY;W7m);Y6Qc^4zm6|BJq zY{3rf!2uk>37o+NT%j9u2RCqs9?%ndL2u{-eZd1f!3+99fAEF@-~+zk2Lr($20;J> zLJ$PQUx9hZ!&vX2EQj19M>>%!dWA5Eeliq{CuZ0vWIrmceq!gcYz7R>5jm z18ZR&tcNVv02^TwY=$kc6|!L)Y=<1kg&nXHcEN7g1AAc~?1wx!00-d^a8}7hexCdo$ zA0EI%cm!XOp;I01crLG=?V76q-SEXaOz33|fIXSb!z8hBjaYZJ`~shYrvYIzeaX0$srxY`_-m zz#bgH5uCsoT)-8&L3eNicjy5I>9h=(zd0EsXb#=&?wnf(@_{Ho<1t0$U*)w!wDDfn3-DJ7E{>hCQ$s_Q8J0g9C674naN?z+otaBXAUs z!ErbNC*hQ#NY9^P`}qI$0m$Y9&^gn}|Fl7zfwNEq=ioeCfQxVmis3R`fva#0uEPzu z2_;Ypx8OG1F%(((-!-^b?iF?Wos-Ofa^Mt7y2YAlkGza6$T# zn0Q0ARhD_d!%JP=&a7Mz+0^3Qh@+okyegU<{9Ll^QD#o?U4yu1D9Q;gGlY#WPwV^2 zbNw673tq;P3;Nt?^r*Pi@hADgR(Wo{%ho0ieEK@mGQZ3q?!yB^k!Aiv!?_mbxjuJ1 qJ`A?XO-iW$v1_W&j&=?WCJstU@-!Rmo%Q~0*7YJo$wPyA=YIh%rH9Y} diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 0000000..eb531fc --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,73 @@ +import type { Config } from "tailwindcss"; + +/** + * 设计令牌 v2 映射:与 apps/web/src/styles.css 的 :root 令牌同源, + * 新增组件样式优先使用 ops-* utility,避免散落硬编码色值。 + */ +export default { + content: [ + "./index.html", + "./src/**/*.{ts,tsx}", + "./packages/ui/src/**/*.{ts,tsx}", + ], + theme: { + extend: { + colors: { + ops: { + bg: "var(--ops-bg)", + surface: "var(--ops-surface)", + "surface-2": "var(--ops-surface-2)", + "editor-bg": "var(--ops-editor-bg)", + border: "var(--ops-border)", + "border-soft": "var(--ops-border-soft)", + text: "var(--ops-text)", + muted: "var(--ops-muted)", + accent: "var(--ops-accent)", + "accent-strong": "var(--ops-accent-strong)", + "accent-soft": "var(--ops-accent-soft)", + danger: "var(--ops-danger)", + warning: "var(--ops-warning)", + success: "var(--ops-success)", + "input-bg": "var(--ops-input-bg)", + "row-alt": "var(--ops-row-alt)", + "bg-active": "var(--ops-bg-active)", + }, + }, + fontSize: { + "ops-xs": "var(--ops-text-xs)", + "ops-sm": "var(--ops-text-sm)", + "ops-md": "var(--ops-text-md)", + "ops-lg": "var(--ops-text-lg)", + }, + spacing: { + "ops-1": "var(--ops-space-1)", + "ops-2": "var(--ops-space-2)", + "ops-3": "var(--ops-space-3)", + "ops-4": "var(--ops-space-4)", + "ops-5": "var(--ops-space-5)", + "ops-6": "var(--ops-space-6)", + }, + borderRadius: { + "ops-sm": "var(--ops-radius-sm)", + "ops-md": "var(--ops-radius-md)", + "ops-lg": "var(--ops-radius-lg)", + }, + boxShadow: { + "ops-pop": "var(--ops-shadow-pop)", + "ops-modal": "var(--ops-shadow-modal)", + }, + zIndex: { + "ops-banner": "var(--ops-z-banner)", + "ops-ctx": "var(--ops-z-ctx)", + "ops-toast": "var(--ops-z-toast)", + "ops-modal": "var(--ops-z-modal)", + "ops-confirm": "var(--ops-z-confirm)", + }, + // 修 V6:删除 JetBrains Mono 声明,等宽栈与 SqlEditor 统一为系统栈 + fontFamily: { + mono: ["ui-monospace", "SFMono-Regular", "Menlo", "Consolas", "monospace"], + }, + }, + }, + plugins: [], +} satisfies Config;