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
313
frontend/src/theme/presets/parchment.js
Normal file
313
frontend/src/theme/presets/parchment.js
Normal file
|
|
@ -0,0 +1,313 @@
|
|||
export default {
|
||||
"id": "parchment",
|
||||
"label": "Parchment",
|
||||
"description": "Dusty beige canvas paired with slate blue accents.",
|
||||
"modes": {
|
||||
"light": {
|
||||
"scale": {
|
||||
"brand": {
|
||||
"50": "#f5f7f9",
|
||||
"100": "#eaf0f4",
|
||||
"200": "#d5e0e9",
|
||||
"300": "#b3c9d7",
|
||||
"400": "#8daabc",
|
||||
"500": "#7d93a4",
|
||||
"600": "#5c7487",
|
||||
"700": "#495e6f",
|
||||
"800": "#3f4d5b",
|
||||
"900": "#36414e",
|
||||
"950": "#232b35"
|
||||
},
|
||||
"info": {
|
||||
"50": "#f2f6fa",
|
||||
"100": "#e0ebf4",
|
||||
"200": "#c8dceb",
|
||||
"300": "#a1c4de",
|
||||
"400": "#73a5cc",
|
||||
"500": "#538ab8",
|
||||
"600": "#406d96",
|
||||
"700": "#34577a",
|
||||
"800": "#2d4965",
|
||||
"900": "#273e55",
|
||||
"950": "#192838"
|
||||
},
|
||||
"success": {
|
||||
"50": "#f1f8f5",
|
||||
"100": "#def0e6",
|
||||
"200": "#bee0ce",
|
||||
"300": "#93c7b0",
|
||||
"400": "#6a9982",
|
||||
"500": "#4c8a6d",
|
||||
"600": "#386b53",
|
||||
"700": "#2e5543",
|
||||
"800": "#274537",
|
||||
"900": "#21392e",
|
||||
"950": "#112019"
|
||||
},
|
||||
"warning": {
|
||||
"50": "#fdf8f1",
|
||||
"100": "#f9eedc",
|
||||
"200": "#f3dbbc",
|
||||
"300": "#ebc191",
|
||||
"400": "#e0a163",
|
||||
"500": "#d1a569",
|
||||
"600": "#b37435",
|
||||
"700": "#945c2d",
|
||||
"800": "#784b29",
|
||||
"900": "#613e24",
|
||||
"950": "#36200f"
|
||||
},
|
||||
"danger": {
|
||||
"50": "#fcf5f5",
|
||||
"100": "#f9e8e8",
|
||||
"200": "#f1d1d1",
|
||||
"300": "#e5b1b1",
|
||||
"400": "#d48888",
|
||||
"500": "#c26b6b",
|
||||
"600": "#a64f4f",
|
||||
"700": "#8a4141",
|
||||
"800": "#733838",
|
||||
"900": "#603232",
|
||||
"950": "#331818"
|
||||
}
|
||||
},
|
||||
"surface": {
|
||||
"app": "#f2eee9",
|
||||
"nav": "#faf8f5",
|
||||
"nav_active": "#d5e0e9",
|
||||
"card": "#faf8f5",
|
||||
"card_muted": "#eae5df",
|
||||
"table": "#faf8f5",
|
||||
"table_header": "#f2eee9",
|
||||
"input": "#ffffff",
|
||||
"overlay": "#333638"
|
||||
},
|
||||
"text": {
|
||||
"primary": "#333638",
|
||||
"secondary": "#6b737c",
|
||||
"muted": "#929ba5",
|
||||
"inverse": "#faf8f5",
|
||||
"link": "#5c7487"
|
||||
},
|
||||
"border": {
|
||||
"default": "#eae5df",
|
||||
"strong": "#d4cec6",
|
||||
"subtle": "#f6f3ef",
|
||||
"interactive": "#b3c9d7"
|
||||
},
|
||||
"focus": {
|
||||
"ring": "#7d93a4",
|
||||
"ring_offset": "#f2eee9"
|
||||
},
|
||||
"action": {
|
||||
"primary": {
|
||||
"bg": "#7d93a4",
|
||||
"border": "#7d93a4",
|
||||
"text": "#faf8f5",
|
||||
"hover_bg": "#5c7487",
|
||||
"hover_border": "#5c7487",
|
||||
"hover_text": "#ffffff"
|
||||
},
|
||||
"secondary": {
|
||||
"bg": "#eae5df",
|
||||
"border": "#d4cec6",
|
||||
"text": "#333638",
|
||||
"hover_bg": "#dcd6cd",
|
||||
"hover_border": "#c2bba0",
|
||||
"hover_text": "#1a1b1d"
|
||||
},
|
||||
"ghost": {
|
||||
"bg": "#f2eee9",
|
||||
"border": "#eae5df",
|
||||
"text": "#5c7487",
|
||||
"hover_bg": "#eae5df",
|
||||
"hover_border": "#d4cec6",
|
||||
"hover_text": "#333638"
|
||||
},
|
||||
"danger": {
|
||||
"bg": "#f9e8e8",
|
||||
"border": "#f1d1d1",
|
||||
"text": "#8a4141",
|
||||
"hover_bg": "#f1d1d1",
|
||||
"hover_border": "#e5b1b1",
|
||||
"hover_text": "#a64f4f"
|
||||
}
|
||||
},
|
||||
"state": {
|
||||
"info": {
|
||||
"bg": "#e0ebf4",
|
||||
"border": "#c8dceb",
|
||||
"text": "#34577a"
|
||||
},
|
||||
"success": {
|
||||
"bg": "#def0e6",
|
||||
"border": "#bee0ce",
|
||||
"text": "#2e5543"
|
||||
},
|
||||
"warning": {
|
||||
"bg": "#f9eedc",
|
||||
"border": "#f3dbbc",
|
||||
"text": "#945c2d"
|
||||
},
|
||||
"danger": {
|
||||
"bg": "#f9e8e8",
|
||||
"border": "#f1d1d1",
|
||||
"text": "#8a4141"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dark": {
|
||||
"scale": {
|
||||
"brand": {
|
||||
"50": "#f5f7f9",
|
||||
"100": "#eaf0f4",
|
||||
"200": "#d5e0e9",
|
||||
"300": "#b3c9d7",
|
||||
"400": "#8daabc",
|
||||
"500": "#7d93a4",
|
||||
"600": "#5c7487",
|
||||
"700": "#495e6f",
|
||||
"800": "#3f4d5b",
|
||||
"900": "#36414e",
|
||||
"950": "#232b35"
|
||||
},
|
||||
"info": {
|
||||
"50": "#f2f6fa",
|
||||
"100": "#e0ebf4",
|
||||
"200": "#c8dceb",
|
||||
"300": "#a1c4de",
|
||||
"400": "#73a5cc",
|
||||
"500": "#538ab8",
|
||||
"600": "#406d96",
|
||||
"700": "#34577a",
|
||||
"800": "#2d4965",
|
||||
"900": "#273e55",
|
||||
"950": "#192838"
|
||||
},
|
||||
"success": {
|
||||
"50": "#f1f8f5",
|
||||
"100": "#def0e6",
|
||||
"200": "#bee0ce",
|
||||
"300": "#93c7b0",
|
||||
"400": "#6a9982",
|
||||
"500": "#4c8a6d",
|
||||
"600": "#386b53",
|
||||
"700": "#2e5543",
|
||||
"800": "#274537",
|
||||
"900": "#21392e",
|
||||
"950": "#112019"
|
||||
},
|
||||
"warning": {
|
||||
"50": "#fdf8f1",
|
||||
"100": "#f9eedc",
|
||||
"200": "#f3dbbc",
|
||||
"300": "#ebc191",
|
||||
"400": "#e0a163",
|
||||
"500": "#d1a569",
|
||||
"600": "#b37435",
|
||||
"700": "#945c2d",
|
||||
"800": "#784b29",
|
||||
"900": "#613e24",
|
||||
"950": "#36200f"
|
||||
},
|
||||
"danger": {
|
||||
"50": "#fcf5f5",
|
||||
"100": "#f9e8e8",
|
||||
"200": "#f1d1d1",
|
||||
"300": "#e5b1b1",
|
||||
"400": "#d48888",
|
||||
"500": "#c26b6b",
|
||||
"600": "#a64f4f",
|
||||
"700": "#8a4141",
|
||||
"800": "#733838",
|
||||
"900": "#603232",
|
||||
"950": "#331818"
|
||||
}
|
||||
},
|
||||
"surface": {
|
||||
"app": "#35373a",
|
||||
"nav": "#424549",
|
||||
"nav_active": "#5c7487",
|
||||
"card": "#424549",
|
||||
"card_muted": "#4d5156",
|
||||
"table": "#424549",
|
||||
"table_header": "#4d5156",
|
||||
"input": "#2a2c2e",
|
||||
"overlay": "#1a1b1d"
|
||||
},
|
||||
"text": {
|
||||
"primary": "#e3e5e8",
|
||||
"secondary": "#aeb5bc",
|
||||
"muted": "#889098",
|
||||
"inverse": "#35373a",
|
||||
"link": "#b3c9d7"
|
||||
},
|
||||
"border": {
|
||||
"default": "#4d5156",
|
||||
"strong": "#5d6268",
|
||||
"subtle": "#3e4145",
|
||||
"interactive": "#7d93a4"
|
||||
},
|
||||
"focus": {
|
||||
"ring": "#7d93a4",
|
||||
"ring_offset": "#35373a"
|
||||
},
|
||||
"action": {
|
||||
"primary": {
|
||||
"bg": "#7d93a4",
|
||||
"border": "#7d93a4",
|
||||
"text": "#1a1b1d",
|
||||
"hover_bg": "#b3c9d7",
|
||||
"hover_border": "#b3c9d7",
|
||||
"hover_text": "#1a1b1d"
|
||||
},
|
||||
"secondary": {
|
||||
"bg": "#4d5156",
|
||||
"border": "#5d6268",
|
||||
"text": "#e3e5e8",
|
||||
"hover_bg": "#5d6268",
|
||||
"hover_border": "#70767c",
|
||||
"hover_text": "#ffffff"
|
||||
},
|
||||
"ghost": {
|
||||
"bg": "#35373a",
|
||||
"border": "#4d5156",
|
||||
"text": "#aeb5bc",
|
||||
"hover_bg": "#4d5156",
|
||||
"hover_border": "#5d6268",
|
||||
"hover_text": "#ffffff"
|
||||
},
|
||||
"danger": {
|
||||
"bg": "#603232",
|
||||
"border": "#733838",
|
||||
"text": "#f1d1d1",
|
||||
"hover_bg": "#733838",
|
||||
"hover_border": "#8a4141",
|
||||
"hover_text": "#f9e8e8"
|
||||
}
|
||||
},
|
||||
"state": {
|
||||
"info": {
|
||||
"bg": "#273e55",
|
||||
"border": "#34577a",
|
||||
"text": "#c8dceb"
|
||||
},
|
||||
"success": {
|
||||
"bg": "#21392e",
|
||||
"border": "#2e5543",
|
||||
"text": "#bee0ce"
|
||||
},
|
||||
"warning": {
|
||||
"bg": "#613e24",
|
||||
"border": "#945c2d",
|
||||
"text": "#f3dbbc"
|
||||
},
|
||||
"danger": {
|
||||
"bg": "#603232",
|
||||
"border": "#8a4141",
|
||||
"text": "#f1d1d1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue