feat: skin engine + Twenty CRM theme for iistwin
- Add client/src/themes/ with tokens, built-in skins (iistwin, twenty, omegaprom) - Add ThemeProvider with data-skin/data-theme and runtime CSS for custom skins - Add npm run skins:generate script for build-time CSS generation - Add organization_skins table, migration and CRUD API - Add activeSkinId to organizations and expose it in /api/auth/me - Add skin switcher in /profile and admin skin editor in /settings/appearance - Adapt index.css hardcoded colors to skin tokens - Update AGENTS.md and Obsidian notes
This commit is contained in:
@@ -36,6 +36,7 @@ import formAccessRouter from "./form-access.routes";
|
||||
import formOfflineRouter from "./form-offline.routes";
|
||||
import { calendarRouter } from "./calendar.routes";
|
||||
import { ganttRouter } from "./gantt.routes";
|
||||
import organizationSkinsRouter from "./organization-skins.routes";
|
||||
import { registerSyncRoutes } from "./sync.routes";
|
||||
import { FIELD_TYPE_DEFINITIONS } from "../../shared/field-types";
|
||||
export { publishNotificationSSE };
|
||||
@@ -110,6 +111,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
||||
app.use(formOfflineRouter);
|
||||
app.use(calendarRouter);
|
||||
app.use(ganttRouter);
|
||||
app.use(organizationSkinsRouter);
|
||||
registerSyncRoutes(app);
|
||||
|
||||
const httpServer = createServer(app);
|
||||
|
||||
Reference in New Issue
Block a user