NODEDC_LAUNCHER/dc-ui-guideline/components/entity-modal.json

50 lines
1.9 KiB
JSON

{
"id": "entity-modal",
"name": "EntityModal",
"kind": "component",
"status": "draft-stable",
"summary": "Dark glass edit/create modal used for services, clients, users, and groups.",
"sourceRefs": [
{
"project": "nodedc_launcher",
"file": "src/widgets/admin-overlay/AdminOverlay.tsx",
"functions": ["ServiceContentModal", "ClientEditorModal", "UserEditorModal", "GroupEditorModal", "EntityModalHead", "EntityModalFoot"]
},
{
"project": "nodedc_launcher",
"file": "src/styles/globals.css",
"classes": ["service-content-modal-layer", "service-content-modal", "service-content-field"]
},
{
"project": "nodedc_taskmanager",
"file": "plane-src/apps/web/styles/globals.css",
"classes": ["nodedc-glass-modal", "nodedc-modal-input", "nodedc-modal-editor", "nodedc-modal-primary-button"]
}
],
"anatomy": [
"fixed overlay layer",
"modal shell",
"head with eyebrow/title/close circle",
"scrollable responsive grid",
"fields",
"footer with cancel, optional delete, save"
],
"visualContract": {
"shellWidth": "min(58rem, viewport - 2.8rem)",
"radius": "modal",
"background": "dark matte glass",
"blur": "modal",
"fieldRadius": "1rem to 1.25rem",
"footerButtonHeight": "2.75rem"
},
"rules": [
"Delete is left of Save inside the right footer action group.",
"Footer buttons use the shared Button primitive with surface='modal'.",
"Inline delete buttons inside edit modals use Button variant='danger' surface='modal', stay transparent until hover, and do not use red danger fills.",
"Save uses Button variant='accent' surface='modal' with local white launcher accent and computed on-accent text.",
"Cancel stays on the left.",
"Close action is circular and transparent until hover.",
"Fields/selects/textareas share the same glass family."
]
}