feat: production-harden app and finalize merge-ready UX/theme baseline
- complete tokenized theme preset system and admin style guide visibility - refine dashboard layout/scroll behavior and shared async/request UI states - add user nav-visibility settings across API, migration, and frontend stores - harden security headers/CSP handling and related test coverage - enforce CI repository hygiene + frontend contract/theme/build quality gates - update docs/env references and make migration smoke test head-aware
This commit is contained in:
parent
ab1d29b203
commit
ae2ca8f149
66 changed files with 5655 additions and 853 deletions
314
frontend/src/theme/presets/dune.js
Normal file
314
frontend/src/theme/presets/dune.js
Normal file
|
|
@ -0,0 +1,314 @@
|
|||
export default {
|
||||
"id": "dune",
|
||||
"label": "Dune",
|
||||
"description": "Sandy beige environments featuring soft mauve highlights.",
|
||||
"modes": {
|
||||
"light": {
|
||||
"scale": {
|
||||
"brand": {
|
||||
"50": "#f7f5f6",
|
||||
"100": "#ece7e9",
|
||||
"200": "#d7cccd",
|
||||
"300": "#baabb2",
|
||||
"400": "#9e8893",
|
||||
"500": "#856b77",
|
||||
"600": "#6c5460",
|
||||
"700": "#58424d",
|
||||
"800": "#4a3841",
|
||||
"900": "#3d3036",
|
||||
"950": "#21181d"
|
||||
},
|
||||
"info": {
|
||||
"50": "#f4f5f8",
|
||||
"100": "#e5e8ef",
|
||||
"200": "#cdd4e1",
|
||||
"300": "#a9b6cb",
|
||||
"400": "#8496b1",
|
||||
"500": "#697a98",
|
||||
"600": "#53617e",
|
||||
"700": "#455067",
|
||||
"800": "#3a4356",
|
||||
"900": "#323948",
|
||||
"950": "#21252f"
|
||||
},
|
||||
"success": {
|
||||
"50": "#f3f7f4",
|
||||
"100": "#e1ebe4",
|
||||
"200": "#c4d8c9",
|
||||
"300": "#9dbfa6",
|
||||
"400": "#75a383",
|
||||
"500": "#588567",
|
||||
"600": "#446950",
|
||||
"700": "#385441",
|
||||
"800": "#2f4436",
|
||||
"900": "#27382d",
|
||||
"950": "#131f18"
|
||||
},
|
||||
"warning": {
|
||||
"50": "#fdf7f3",
|
||||
"100": "#faebe2",
|
||||
"200": "#f3d2be",
|
||||
"300": "#eab192",
|
||||
"400": "#de8f68",
|
||||
"500": "#cc784f",
|
||||
"600": "#b05e3b",
|
||||
"700": "#924a2f",
|
||||
"800": "#783e29",
|
||||
"900": "#633524",
|
||||
"950": "#351a0f"
|
||||
},
|
||||
"danger": {
|
||||
"50": "#fcf5f6",
|
||||
"100": "#f8e6e9",
|
||||
"200": "#efcbd1",
|
||||
"300": "#e2a6b1",
|
||||
"400": "#d07d8d",
|
||||
"500": "#b85d6e",
|
||||
"600": "#9b4556",
|
||||
"700": "#823746",
|
||||
"800": "#6c303c",
|
||||
"900": "#5a2a33",
|
||||
"950": "#31141a"
|
||||
}
|
||||
},
|
||||
"surface": {
|
||||
"app": "#efece5",
|
||||
"nav": "#f7f5f0",
|
||||
"nav_active": "#d7cccd",
|
||||
"card": "#f7f5f0",
|
||||
"card_muted": "#e6e3dd",
|
||||
"table": "#f7f5f0",
|
||||
"table_header": "#efece5",
|
||||
"input": "#ffffff",
|
||||
"overlay": "#3d3a3b"
|
||||
},
|
||||
"text": {
|
||||
"primary": "#3d3a3b",
|
||||
"secondary": "#757072",
|
||||
"muted": "#9c9699",
|
||||
"inverse": "#f7f5f0",
|
||||
"link": "#6c5460"
|
||||
},
|
||||
"border": {
|
||||
"default": "#e6e3dd",
|
||||
"strong": "#d1cdc6",
|
||||
"subtle": "#f2f0eb",
|
||||
"interactive": "#baabb2"
|
||||
},
|
||||
"focus": {
|
||||
"ring": "#9e8893",
|
||||
"ring_offset": "#efece5"
|
||||
},
|
||||
"action": {
|
||||
"primary": {
|
||||
"bg": "#9e8893",
|
||||
"border": "#9e8893",
|
||||
"text": "#f7f5f0",
|
||||
"hover_bg": "#856b77",
|
||||
"hover_border": "#856b77",
|
||||
"hover_text": "#ffffff"
|
||||
},
|
||||
"secondary": {
|
||||
"bg": "#e6e3dd",
|
||||
"border": "#d1cdc6",
|
||||
"text": "#3d3a3b",
|
||||
"hover_bg": "#d8d5ce",
|
||||
"hover_border": "#bcbbb5",
|
||||
"hover_text": "#1f1d1e"
|
||||
},
|
||||
"ghost": {
|
||||
"bg": "#efece5",
|
||||
"border": "#e6e3dd",
|
||||
"text": "#6c5460",
|
||||
"hover_bg": "#e6e3dd",
|
||||
"hover_border": "#d1cdc6",
|
||||
"hover_text": "#3d3a3b"
|
||||
},
|
||||
"danger": {
|
||||
"bg": "#f8e6e9",
|
||||
"border": "#efcbd1",
|
||||
"text": "#823746",
|
||||
"hover_bg": "#efcbd1",
|
||||
"hover_border": "#e2a6b1",
|
||||
"hover_text": "#9b4556"
|
||||
}
|
||||
},
|
||||
"state": {
|
||||
"info": {
|
||||
"bg": "#e5e8ef",
|
||||
"border": "#cdd4e1",
|
||||
"text": "#455067"
|
||||
},
|
||||
"success": {
|
||||
"bg": "#e1ebe4",
|
||||
"border": "#c4d8c9",
|
||||
"text": "#385441"
|
||||
},
|
||||
"warning": {
|
||||
"bg": "#faebe2",
|
||||
"border": "#f3d2be",
|
||||
"text": "#924a2f"
|
||||
},
|
||||
"danger": {
|
||||
"bg": "#f8e6e9",
|
||||
"border": "#efcbd1",
|
||||
"text": "#823746"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dark": {
|
||||
"scale": {
|
||||
"brand": {
|
||||
"50": "#f7f5f6",
|
||||
"100": "#ece7e9",
|
||||
"200": "#d7cccd",
|
||||
"300": "#baabb2",
|
||||
"400": "#9e8893",
|
||||
"500": "#856b77",
|
||||
"600": "#6c5460",
|
||||
"700": "#58424d",
|
||||
"800": "#4a3841",
|
||||
"900": "#3d3036",
|
||||
"950": "#21181d"
|
||||
},
|
||||
"info": {
|
||||
"50": "#f4f5f8",
|
||||
"100": "#e5e8ef",
|
||||
"200": "#cdd4e1",
|
||||
"300": "#a9b6cb",
|
||||
"400": "#8496b1",
|
||||
"500": "#697a98",
|
||||
"600": "#53617e",
|
||||
"700": "#455067",
|
||||
"800": "#3a4356",
|
||||
"900": "#323948",
|
||||
"950": "#21252f"
|
||||
},
|
||||
"success": {
|
||||
"50": "#f3f7f4",
|
||||
"100": "#e1ebe4",
|
||||
"200": "#c4d8c9",
|
||||
"300": "#9dbfa6",
|
||||
"400": "#75a383",
|
||||
"500": "#588567",
|
||||
"600": "#446950",
|
||||
"700": "#385441",
|
||||
"800": "#2f4436",
|
||||
"900": "#27382d",
|
||||
"950": "#131f18"
|
||||
},
|
||||
"warning": {
|
||||
"50": "#fdf7f3",
|
||||
"100": "#faebe2",
|
||||
"200": "#f3d2be",
|
||||
"300": "#eab192",
|
||||
"400": "#de8f68",
|
||||
"500": "#cc784f",
|
||||
"600": "#b05e3b",
|
||||
"700": "#924a2f",
|
||||
"800": "#783e29",
|
||||
"900": "#633524",
|
||||
"950": "#351a0f"
|
||||
},
|
||||
"danger": {
|
||||
"50": "#fcf5f6",
|
||||
"100": "#f8e6e9",
|
||||
"200": "#efcbd1",
|
||||
"300": "#e2a6b1",
|
||||
"400": "#d07d8d",
|
||||
"500": "#b85d6e",
|
||||
"600": "#9b4556",
|
||||
"700": "#823746",
|
||||
"800": "#6c303c",
|
||||
"900": "#5a2a33",
|
||||
"950": "#31141a"
|
||||
}
|
||||
},
|
||||
"surface": {
|
||||
"app": "#3d3a3b",
|
||||
"nav": "#4a4748",
|
||||
"nav_active": "#6c5460",
|
||||
"card": "#4a4748",
|
||||
"card_muted": "#575354",
|
||||
"table": "#4a4748",
|
||||
"table_header": "#575354",
|
||||
"input": "#312e2f",
|
||||
"overlay": "#1f1d1e"
|
||||
},
|
||||
"text": {
|
||||
"primary": "#e6e3e4",
|
||||
"secondary": "#b8b4b6",
|
||||
"muted": "#918e8f",
|
||||
"inverse": "#3d3a3b",
|
||||
"link": "#baabb2"
|
||||
},
|
||||
"border": {
|
||||
"default": "#575354",
|
||||
"strong": "#696466",
|
||||
"subtle": "#474345",
|
||||
"interactive": "#9e8893"
|
||||
},
|
||||
"focus": {
|
||||
"ring": "#9e8893",
|
||||
"ring_offset": "#3d3a3b"
|
||||
},
|
||||
"action": {
|
||||
"primary": {
|
||||
"bg": "#9e8893",
|
||||
"border": "#9e8893",
|
||||
"text": "#1f1d1e",
|
||||
"hover_bg": "#baabb2",
|
||||
"hover_border": "#baabb2",
|
||||
"hover_text": "#1f1d1e"
|
||||
},
|
||||
"secondary": {
|
||||
"bg": "#575354",
|
||||
"border": "#696466",
|
||||
"text": "#e6e3e4",
|
||||
"hover_bg": "#696466",
|
||||
"hover_border": "#7a7577",
|
||||
"hover_text": "#ffffff"
|
||||
},
|
||||
"ghost": {
|
||||
"bg": "#3d3a3b",
|
||||
"border": "#575354",
|
||||
"text": "#b8b4b6",
|
||||
"hover_bg": "#575354",
|
||||
"hover_border": "#696466",
|
||||
"hover_text": "#ffffff"
|
||||
},
|
||||
"danger": {
|
||||
"bg": "#5a2a33",
|
||||
"border": "#6c303c",
|
||||
"text": "#efcbd1",
|
||||
"hover_bg": "#6c303c",
|
||||
"hover_border": "#823746",
|
||||
"hover_text": "#f8e6e9"
|
||||
}
|
||||
},
|
||||
"state": {
|
||||
"info": {
|
||||
"bg": "#323948",
|
||||
"border": "#455067",
|
||||
"text": "#cdd4e1"
|
||||
},
|
||||
"success": {
|
||||
"bg": "#27382d",
|
||||
"border": "#385441",
|
||||
"text": "#c4d8c9"
|
||||
},
|
||||
"warning": {
|
||||
"bg": "#633524",
|
||||
"border": "#924a2f",
|
||||
"text": "#f3d2be"
|
||||
},
|
||||
"danger": {
|
||||
"bg": "#5a2a33",
|
||||
"border": "#823746",
|
||||
"text": "#efcbd1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
;
|
||||
Loading…
Add table
Add a link
Reference in a new issue