From 4d628576c7ede594e3923034c91ede4e7777f624 Mon Sep 17 00:00:00 2001 From: Ali <010109ali@gmail.com> Date: Mon, 20 Jul 2026 14:17:52 +0000 Subject: [PATCH] feat(desk): expand layout config with block/hide rules + silk bg asset - desk_layout.json: add blocked_doctypes and per-workspace hide/block rules across Assets, Buying, Invoicing, Manufacturing, Payroll, Recruitment, Selling, Stock (+ Landed Cost Voucher inject/order) - add silk-bg.jpg (referenced by jey_theme.bundle.css) - CLAUDE.md: doc updates Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 48 ++++- jey_theme/config/desk_layout.json | 322 +++++++++++++++++++++++++++- jey_theme/public/images/silk-bg.jpg | Bin 0 -> 42054 bytes 3 files changed, 360 insertions(+), 10 deletions(-) create mode 100644 jey_theme/public/images/silk-bg.jpg diff --git a/CLAUDE.md b/CLAUDE.md index d134955..f089223 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -15,8 +15,7 @@ Installed into `frappe-bench` as a normal app. Python code is at `jey_theme/` (F Run from `frappe-bench/` (the bench root), not this app dir. -- `bench build --app jey_theme` — rebuild JS bundle after editing `jey_theme/public/js/jey_theme.js`. -- CSS-only changes: no build needed, just hard-reload the browser. +- `bench build --app jey_theme` — required after **CSS** edits (`jey_theme.bundle.css` → hashed file in `public/dist/css/`). JS is served raw and needs only a hard reload. - `bench migrate` — runs the `after_migrate` hook that rebuilds the Taxes Az workspace from `setup/taxes_workspace.py`. - `bench execute jey_theme.setup.taxes_workspace.setup` — re-run the workspace setup without a full migrate. - `bench restart` — reload Python workers after editing `access_control.py` or `hooks.py`. @@ -128,12 +127,44 @@ Idempotent setup run via `after_migrate`. ### Frontend: multi-theme system -Bundle entry: `jey_theme/public/js/jey_theme.js`. CSS: `jey_theme/public/css/{shared,theme_chrome,theme_modern}.css`. All four are loaded via `app_include_css` / `app_include_js` in `hooks.py` for both desk and web contexts. +JS entry: `jey_theme/public/js/jey_theme.js` (served raw via `app_include_js`, not bundled). +CSS: **one file**, `jey_theme/public/css/jey_theme.bundle.css` — the former +`shared.css` / `theme_chrome.css` / `theme_modern.css` were concatenated into it +(in that order, still marked by `/* ===== .css ===== */` banners) so the +desk's preload header stays under the edge proxy's 4 KB buffer. Edit the bundle +directly; there are no separate source files to regenerate it from. +- **CSS changes need `bench build --app jey_theme`.** `app_include_css` names the + bundle, and esbuild emits the hashed `public/dist/css/jey_theme.bundle..css` + that `sites/assets/assets.json` actually points the browser at. Editing the bundle + alone changes nothing in the browser. +- JS changes need only a hard reload — but `/assets/jey_theme/js/jey_theme.js` is a + hashless path under a 1-year nginx cache, so it really does have to be a *hard* + reload (or a cache-disabled session). - Theme selector lives in `data-jey-theme` on ``, stored in `localStorage("jey-theme")`. Default: `chrome`. Set before first paint by an IIFE at the top of `jey_theme.js`. -- Themes supported: **chrome** (metallic rings), **silk** (warm ivory & champagne-gold, frosted cards). No dark/light variants — each theme is self-contained. +- Themes supported: **chrome** (metallic rings), **silk** (warm ivory & champagne-gold + glass-neumorphism, ported from `public/silk_dashboard_crisp.html` — that mockup is + silk's design reference; keep the two in sync). + No dark/light variants — each theme is self-contained. - Theme-specific CSS MUST be wrapped in `[data-jey-theme="themename"]`. Keyframes MUST be prefixed `jey--*` to avoid cross-theme name collisions. -- Shared CSS (checkboxes, icon base sizing, switcher UI, column-resize rules) lives in `shared.css` without theme selectors. +- Shared CSS (checkboxes, icon base sizing, switcher UI, column-resize rules, the + card icon-tile defaults) lives in the `shared.css` section without theme selectors. + +**Frosted glass (silk, and any future glass theme) — two rules that cost real +debugging time:** +- **One `backdrop-filter` per stack.** A frosted element inside another frosted + element paints as an opaque white block on real GPUs; headless Chrome + (SwiftShader) renders it correctly, so it passes every test render. Only the + outermost surface gets the filter — currently `.widget`, `.form-page`, + `.frappe-list .result-container`, `.navbar-search-bar`, `.dropdown-navbar-user`, + `.desktop-navbar-modal-search`, `.jey-chrome`. Everything nested (icon tiles, + chips, count pills, buttons) gets a translucent fill and no filter. There's a + backstop rule near the Modals section, but don't rely on it — check with the + live-DOM audit (walk every element, flag any whose ancestor also has a + non-`none` computed `backdropFilter`). +- **On silk it's the translucency, not the blur, that reads as glass.** The fabric + is near-uniform, so a strong blur averages it into a flat opaque panel. Light + blur (6px) over a very translucent warm fill is what lets it show through. ### Frontend: per-theme icons @@ -153,11 +184,10 @@ Keep this IIFE minimal and synchronous — anything slow here delays first paint ## Adding a new theme -1. Create `jey_theme/public/css/theme_mytheme.css` with `[data-jey-theme="mytheme"]` selectors. Prefix keyframes `jey-mytheme-*`. +1. Append a `/* ===== theme_mytheme.css ===== */` section to `jey_theme/public/css/jey_theme.bundle.css`, with every rule wrapped in `[data-jey-theme="mytheme"]`. Prefix keyframes `jey-mytheme-*`. Do NOT add a new file/`app_include_css` entry — extra preload-header lines are what the single bundle exists to avoid. 2. Add `THEME_ICONS.mytheme = { ... }` in `jey_theme.js` (only override keys you care about). -3. Add an entry to `JEY_THEMES` array in the switcher section of `jey_theme.js`. -4. Add the CSS file to both `app_include_css` and `web_include_css` in `hooks.py`. -5. `bench build --app jey_theme`. +3. Add an entry to the `JEY_THEMES` array in the switcher section of `jey_theme.js`, and a `.jey-theme-preview--mytheme` swatch in the bundle's shared section. +4. `bench build --app jey_theme`. ## Rules diff --git a/jey_theme/config/desk_layout.json b/jey_theme/config/desk_layout.json index a00c3a6..840e82a 100644 --- a/jey_theme/config/desk_layout.json +++ b/jey_theme/config/desk_layout.json @@ -1,4 +1,324 @@ { + "blocked_doctypes": [ + "Server Script", + "Client Script", + "Website Script", + "Subcontracting Inward Order Secondary Item", + "Subcontracting Inward Order Service Item", + "Subcontracting Inward Order Received Item", + "Subcontracting Inward Order Item", + "Subcontracting Inward Order", + "Subcontracting BOM", + "Subcontracting Receipt", + "Subcontracting Receipt Supplied Item", + "Subcontracting Receipt Item", + "Subcontracting Order", + "Subcontracting Order Supplied Item", + "Subcontracting Order Item", + "Subcontracting Order Service Item", + "Job Opening" + ], "version": 1, - "workspaces": {} + "workspaces": { + "Assets": { + "cards": { + "Maintenance": { + "state": "hidden" + } + }, + "links": { + "DocType::Asset Capitalization": { + "state": "blocked" + }, + "DocType::Asset Maintenance": { + "state": "blocked" + }, + "DocType::Asset Maintenance Log": { + "state": "blocked" + }, + "DocType::Asset Maintenance Team": { + "state": "blocked" + }, + "DocType::Asset Repair": { + "state": "blocked" + }, + "DocType::Asset Value Adjustment": { + "state": "blocked" + } + }, + "state": "visible" + }, + "Buying": { + "cards": { + "Supplier Scorecard": { + "state": "hidden" + } + }, + "links": { + "DocType::Promotional Scheme": { + "state": "blocked" + }, + "DocType::Request for Quotation": { + "state": "blocked" + }, + "DocType::Supplier Quotation": { + "state": "blocked" + }, + "DocType::Supplier Scorecard": { + "state": "blocked" + }, + "DocType::Supplier Scorecard Criteria": { + "state": "blocked" + }, + "DocType::Supplier Scorecard Standing": { + "state": "blocked" + }, + "DocType::Supplier Scorecard Variable": { + "state": "blocked" + }, + "Report::Subcontracted Item To Be Received": { + "state": "blocked" + }, + "Report::Subcontracted Raw Materials To Be Transferred": { + "state": "blocked" + }, + "Report::Supplier Quotation Comparison": { + "state": "blocked" + } + }, + "state": "visible" + }, + "Expenses": { + "cards": { + "Fleet Management": { + "state": "hidden" + }, + "Travel": { + "state": "hidden" + } + }, + "state": "visible" + }, + "Invoicing": { + "cards": { + "Share Management": { + "state": "hidden" + } + }, + "links": { + "DocType::Share Transfer": { + "state": "blocked" + }, + "DocType::Shareholder": { + "state": "blocked" + }, + "DocType::Tax Rule": { + "state": "blocked" + }, + "DocType::Tax Withholding Category": { + "state": "blocked" + }, + "Report::Share Balance": { + "state": "blocked" + }, + "Report::Share Ledger": { + "state": "blocked" + } + }, + "state": "visible" + }, + "Manufacturing": { + "cards": { + "Subcontracting": { + "state": "hidden" + } + }, + "links": { + "DocType::Downtime Entry": { + "state": "blocked" + }, + "DocType::Item Lead Time": { + "state": "blocked" + }, + "DocType::Production Plan": { + "state": "blocked" + }, + "DocType::Sales Forecast": { + "state": "blocked" + }, + "DocType::Subcontracting BOM": { + "state": "blocked" + }, + "DocType::Subcontracting Order": { + "state": "blocked" + }, + "DocType::Subcontracting Receipt": { + "state": "blocked" + }, + "Report::Downtime Analysis": { + "state": "blocked" + }, + "Report::Production Planning Report": { + "state": "blocked" + }, + "Report::Quality Inspection Summary": { + "state": "blocked" + }, + "Report::Subcontract Order Summary": { + "state": "blocked" + }, + "Report::Subcontracted Item To Be Received": { + "state": "blocked" + }, + "Report::Subcontracted Raw Materials To Be Transferred": { + "state": "blocked" + } + }, + "state": "visible" + }, + "Payroll": { + "links": { + "DocType::Income Tax Slab": { + "state": "blocked" + }, + "Report::Income Tax Computation": { + "state": "blocked" + }, + "Report::Salary Payments via ECS": { + "state": "blocked" + } + }, + "state": "visible" + }, + "Recruitment": { + "cards": { + "Appointment": { + "state": "hidden" + }, + "Interviews": { + "state": "hidden" + }, + "Reports": { + "state": "hidden" + } + }, + "links": { + "DocType::Appointment Letter": { + "state": "blocked" + }, + "DocType::Appointment Letter Template": { + "state": "blocked" + }, + "DocType::Employee Referral": { + "state": "blocked" + }, + "DocType::Interview": { + "state": "blocked" + }, + "DocType::Interview Feedback": { + "state": "blocked" + }, + "DocType::Interview Type": { + "state": "blocked" + }, + "DocType::Job Requisition": { + "state": "blocked" + }, + "DocType::Staffing Plan": { + "state": "blocked" + }, + "Report::Recruitment Analytics": { + "state": "blocked" + } + }, + "state": "visible" + }, + "Selling": { + "links": { + "DocType::Coupon Code": { + "state": "blocked" + } + }, + "state": "visible" + }, + "Stock": { + "added": { + "DocType::Landed Cost Voucher": { + "card": "Stock Transactions", + "label": "Landed Cost Voucher", + "link_to": "Landed Cost Voucher", + "link_type": "DocType" + } + }, + "cards": { + "Serial No and Batch": { + "state": "hidden" + }, + "Tools": { + "state": "hidden" + } + }, + "links": { + "DocType::Batch": { + "state": "blocked" + }, + "DocType::Installation Note": { + "state": "blocked" + }, + "DocType::Material Request": { + "state": "blocked" + }, + "DocType::Packing Slip": { + "state": "blocked" + }, + "DocType::Quality Inspection": { + "state": "blocked" + }, + "DocType::Quality Inspection Template": { + "state": "blocked" + }, + "DocType::Quick Stock Balance": { + "state": "blocked" + }, + "DocType::Serial No": { + "state": "blocked" + }, + "DocType::Stock Reconciliation": { + "state": "blocked" + }, + "Report::Serial No Ledger": { + "state": "blocked" + }, + "Report::Serial No Service Contract Expiry": { + "state": "blocked" + }, + "Report::Serial No Status": { + "state": "blocked" + }, + "Report::Serial No Warranty Expiry": { + "state": "blocked" + }, + "Report::Serial No and Batch Traceability": { + "state": "blocked" + }, + "Report::Subcontracted Item To Be Received": { + "state": "blocked" + }, + "Report::Subcontracted Raw Materials To Be Transferred": { + "state": "blocked" + } + }, + "order": { + "Tools": [ + "DocType::Landed Cost Voucher", + "DocType::Stock Reconciliation", + "DocType::Packing Slip", + "DocType::Quality Inspection", + "DocType::Quality Inspection Template", + "DocType::Quick Stock Balance" + ] + }, + "state": "visible" + } + } } diff --git a/jey_theme/public/images/silk-bg.jpg b/jey_theme/public/images/silk-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0303d7aca9c0a999c45fae7fbc89cf6305c3fda4 GIT binary patch literal 42054 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 literal 0 HcmV?d00001