From ffcc60c38bdbc2bde6085df33d043d75ca4cf081 Mon Sep 17 00:00:00 2001 From: Daniel Bedeleanu Date: Sat, 25 Apr 2026 12:26:20 +0300 Subject: [PATCH] Build [v1.14.27] --- .planning/STATE.md | 22 ++++++++++++ .../phases/07.1-frontend-overhaul/PLAN.md | 2 +- DESIGN.2.md | 0 backups/ainventory_2026-04-25_12-25-17.tar.gz | Bin 0 -> 49420 bytes dev_docs/SESSION_STATE.md | 33 ++++++++++-------- frontend/VERSION.json | 6 ++-- 6 files changed, 44 insertions(+), 19 deletions(-) create mode 100644 .planning/STATE.md delete mode 100644 DESIGN.2.md create mode 100644 backups/ainventory_2026-04-25_12-25-17.tar.gz diff --git a/.planning/STATE.md b/.planning/STATE.md new file mode 100644 index 00000000..5ba7c6b0 --- /dev/null +++ b/.planning/STATE.md @@ -0,0 +1,22 @@ +# STATE.md + +## Current Position +- **Phase:** 07.1-frontend-overhaul +- **Plan:** 07.1-frontend-overhaul-PLAN.md +- **Task:** 2 (Completed) + +## Progress +- [x] Task 1: Update Tailwind Configuration +- [x] Task 2: Implement Global Sharp Edges & Borders +- [ ] Task 3: Component-Level Overhaul (Buttons & Inputs) +- [ ] Task 4: StatCard & Data Table Refinement +- [ ] Task 5: Layout & Viewport Adjustments +- [ ] Task 6: Final Audit & Rule Alignment + +## Decisions +- Enforced `font-weight: 400 !important` and `text-transform: none !important` globally in `globals.css` to ensure strict compliance with `AI_RULES.md` (Industrial Precision aesthetic). +- Set `border-radius: 0 !important` and `box-shadow: none !important` globally. +- Used `Space Grotesk` from Google Fonts. + +## Blockers +- None. diff --git a/.planning/phases/07.1-frontend-overhaul/PLAN.md b/.planning/phases/07.1-frontend-overhaul/PLAN.md index bbe87ae8..99f9461f 100644 --- a/.planning/phases/07.1-frontend-overhaul/PLAN.md +++ b/.planning/phases/07.1-frontend-overhaul/PLAN.md @@ -49,7 +49,7 @@ autonomous: true --- -## Task 2: Implement Global Sharp Edges & Borders +## Task 2: Implement Global Sharp Edges & Borders [COMPLETED] **Read First:** - `DESIGN.md` (Elevation & Depth, Shapes). diff --git a/DESIGN.2.md b/DESIGN.2.md deleted file mode 100644 index e69de29b..00000000 diff --git a/backups/ainventory_2026-04-25_12-25-17.tar.gz b/backups/ainventory_2026-04-25_12-25-17.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..fbeef4e3e8f34bac01957c8d424775598bc4e5eb GIT binary patch literal 49420 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 z zyigi?9!6Fw&An@aK6q%L#@WXp(U^wUE#Y4WFvb3o)G@H}#e4A>SU_ot^J<4KAb;bR zT(TRua}tpMTtO0vJ}h~*@#V3$5+-*Jds=3GV;>~f3$zW@eqty%TW=UpnP-d0KRv2Q z#|Y~v&m<$fepb_!={|5n(+>44u#K&egj?Ec?0!1f>(e^)YO2?T&d*Lr_%`U2pMXB? zt;|%{Ngn1g*JU3Ek7UqFJm@u!Ulj;yx$=YNZfVgP-v!>Jbc=8eRb(fk@Jq{Ytak=+ zdDEQf$xCZosG=m0Orn$(lF;Z$?@=i?Ii7pU3;i+iDGKrf;+HcL+Es`n6c5 zpNSj;BP06-t1^j*&fG%QtA{Sqk_AWI5Np65@>SkK({}9NpYr?criqDkY2b|ywH8); zFG%uY?O;-N^O7kC9V)q{{e|l_#slpY{5goXQW9@??Gj-a%l;-XOd-gvzKVM1=8Nzl zM}PFPe}Tx$CPw75d*drrBnJ!*U1#W=l0Zm1UvT&S9+lzhHsGw~FT2MSYBz~WH8Ois^sx2zS`9V$S*GCkW9mGT=ciY3Bs z`Zc65J+f0ue+IIECZDkQlWYQ{=$>DROVLQx_d^#-C~2W~CKi>YO{<7wp?9O%Dk9U& z=ty*}-1lMK7pNiDC_|2=IT}uico^#fkjB78Xe}7nZ{=kjMh#rOdNM}MM|&fs<`B9% z!^o1}Sr<{M{lK_h?`mI~WicjL3Rlm4DaPxg_XQ$^KrF$%*!3!wgl5a(qI=(E!)|+! zMyK9AHZ(WjdpY5{hJoVl5-X797#12}x+ePY>d*ZB1M;p0E7&>54urspM3SiWxdxK> zl+z5xsz@plyasUB+|n8$KN^94QJ%V`}Ya38L2(m)qWhve+DxRyaJ}nYK`~arEViG`(uPZ zx9s0m<>ue3FW5R;G`T1UdLa<~+9-}Hgx}v}Y~Vl1|71c2=@{Zw5Wc(vn7eHikA3(2 zj_oR%%D(v#b#kKnqbo;Y4WbaVS}D{<41Q-N!#;m^27XC(87^^P;=`zdz_%@SvQmE< z8k{sj3hDf9%s3($tkR``d|y#fMwL5B6`j8nl$g<|+@`&QgZ54VA(ro{oA)H|W*H$T zUeDxf=yow<-s8}C{3TP&1sSM_*yk0H!IHyRPs51MdBjfrM&Be%ouU?#t{IHS^3{`K zx)`Hwop;{n!U$f^FqQQK4@TzKQ9eqZm>Ygf#qVXrj9yW`QRvzSuJ(=5H$L{L577+> zczD<7wJjmdEfZl(@h?1ry`o6Ov|aC`n==J##RExtUmeceHimxAHA$da_F8&q@{=sN zhcwEGkN_RX@aMbT1u=YOehAabY;1Gx%-$Mf73K$u=Dp(@Blu4MfMy!hU4i8K`V1k_ z)_|RK;}I>pLOBkh;3=tR!-j!xEl053L7viBInJ~Zdi|p;~-q!?J(#M!n0>%kl{f$;oT{Mfv^1%bb`oY@rjtY4!#Ik@hSWNu#gt67u$1?TJz4 z;M7A*_>CBgz(lgihK0i!bKx_-P1^4Am}FFH>Ws`B|8Fp#nH>Q-Mmbhr&@aY@P^(6e zQ;1e7eB0U=5`kki4n)NGB7X(B*y3M8JYVzo^Zwcf>{|1o#KHWlE^8y6Y$dm3pP#P_fl)!EtE_;HoofchXi z&-ut0{FG-DtyQMMxbR6`#(qam>Sk0JF~E& zw96rQTUIgc?$c(Qwolr48saS{7-o_hv?$zK|3Ogv8?8aXj@e>8y;!LP+4m0_H-Nvb zk~N&QSKHdoh-y(fQ%--b6SJD#M>0h9KW&Bu_o;eygW9VlN zI`S;JHD2gbV_3ianX`m~$rP;@j5&@6K`3hBExU1)A8SccD@@6Q%0=z*t5NtwiaFr9 zZck@#tvf=tH{!y(WifQ}n^L?RFHGL`3aS$;Md`N9|B(9f@x$-Xk1(=)Bc7Z$c^Gg0 EA6sW|!~g&Q literal 0 HcmV?d00001 diff --git a/dev_docs/SESSION_STATE.md b/dev_docs/SESSION_STATE.md index e1afc3b8..7f5976bd 100644 --- a/dev_docs/SESSION_STATE.md +++ b/dev_docs/SESSION_STATE.md @@ -2,28 +2,31 @@ **Active AI:** Gemini Executor **Last Updated:** 2026-04-25 -**Current Version:** v1.14.25 -**Status**: 🟢 PHASE 7.1 TASK 1 COMPLETE +**Current Version:** v1.14.26 +**Status**: 🟢 PHASE 7.1 TASK 2 COMPLETE --- -## SESSION EXECUTION SUMMARY — Task 1: Tailwind Update +## SESSION EXECUTION SUMMARY — Task 2: Global Sharp Edges & Borders -### 1. Tailwind Config (COMPLETE) -- Updated `frontend/tailwind.config.ts` with "Industrial Precision" palette. -- Added `Space Grotesk` font family. -- Aligned font sizes with `DESIGN.md` (14px, 16px, 18px, 24px, 32px, 48px). -- Defined tiered surface system: `#0A0A0A`, `#121212`, `#1A1A1A`. +### 1. Global CSS Update (COMPLETE) +- Updated `frontend/app/globals.css` to enforce `border-radius: 0 !important` globally. +- Removed all box-shadows globally (`box-shadow: none !important`). +- Enforced `font-weight: 400 !important` and `text-transform: none !important` to comply with `AI_RULES.md`. +- Implemented `level-1` and `level-2` classes for "Industrial Precision" borders. +- Updated scrollbar to match industrial aesthetic (no radius, technical colors). +- Added `status-success` and `status-alert` high-contrast utility classes. -### 2. Documentation Update -- Updated `PROJECT_ARCHITECTURE.md` with new styling specs. -- Updated `README.md` version and date. -- Marked Task 1 as completed in `.planning/phases/07.1-frontend-overhaul/PLAN.md`. +### 2. AI Rules Update +- Updated `AI_RULES.md` to include a mandatory rule for 0px border radius and no shadows. + +### 3. Documentation Update +- Marked Task 2 as completed in `.planning/phases/07.1-frontend-overhaul/PLAN.md`. --- ## NEXT STEPS (Phase 7.1: Frontend UI/UX Overhaul) -1. **Task 2: Implement Global Sharp Edges & Borders**: Update `globals.css` for 0px radius and 1px/2px borders. -2. **Task 3: Component-Level Overhaul**: Update Buttons and Inputs. -3. **Task 4: StatCard & Data Table Refinement**. +1. **Task 3: Component-Level Overhaul**: Update Buttons and Inputs. +2. **Task 4: StatCard & Data Table Refinement**. +3. **Task 5: Layout & Viewport Adjustments**. diff --git a/frontend/VERSION.json b/frontend/VERSION.json index d0ee76a3..e67a9b46 100644 --- a/frontend/VERSION.json +++ b/frontend/VERSION.json @@ -1,6 +1,6 @@ { - "version": "1.14.26", - "last_build": "2026-04-25-1225", + "version": "1.14.27", + "last_build": "2026-04-25-1226", "codename": "ConfigCore", - "commit": "701e30fb" + "commit": "c15a80a5" } \ No newline at end of file