Add Launcher application template and icon system
This commit is contained in:
@@ -148,7 +148,37 @@
|
||||
"anatomy": ["left brand", "optional left context", "center navigation/workspace", "right actions/profile"],
|
||||
"rules": [
|
||||
"The logo occupies the same visual position and geometry across applications.",
|
||||
"Product routes and profile content are application data passed into stable slots."
|
||||
"Product routes and profile content are application data passed into stable slots.",
|
||||
"The canonical application header is fixed and preserves the Launcher three-axis logo / navigation / profile positions."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "application-shell",
|
||||
"status": "baseline",
|
||||
"package": "@nodedc/ui-react",
|
||||
"exports": ["ApplicationShell", "ApplicationPanel"],
|
||||
"domContract": ["nodedc-app-shell", "nodedc-application-panel"],
|
||||
"summary": "Launcher-derived application template with fixed header, media stage, left navigation and a separate expandable content window.",
|
||||
"anatomy": ["fixed AppHeader", "stage", "left navigation", "right content window", "expand and close actions"],
|
||||
"behavior": ["navigation shifts stage", "content opens beside navigation", "expanded content replaces stage", "mobile panels use the available viewport sequentially", "independent content scrolling"],
|
||||
"rules": [
|
||||
"The bottom Launcher service rail is product-specific and is not part of the general application template.",
|
||||
"Desktop page gap is 20 px and navigation width follows the Launcher 332–352 px range.",
|
||||
"Applications supply routes, profile data, stage media and panel content without changing shell geometry."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "icon",
|
||||
"status": "baseline",
|
||||
"package": "@nodedc/ui-react",
|
||||
"exports": ["Icon"],
|
||||
"domContract": ["svg using currentColor"],
|
||||
"summary": "Audited semantic icon subset shared by NODE.DC applications instead of product-local vendor imports.",
|
||||
"variants": ["16 px", "18 px", "20 px"],
|
||||
"rules": [
|
||||
"Use semantic names from registry/icons.json.",
|
||||
"The containing component owns surface, hit target and state; the icon owns only the glyph.",
|
||||
"Do not copy complete Lucide or Font Awesome catalogs into an application."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -161,7 +191,7 @@
|
||||
"anatomy": ["eyebrow and title", "close action", "workspace context", "company context", "route items", "footer identity"],
|
||||
"rules": [
|
||||
"The panel shell, full-bleed pills and icon circles are library geometry; routes and identity data remain application-owned.",
|
||||
"The desktop panel is 352 px wide with a 21.6 px shell radius and opens beside, not over, the main Hub content.",
|
||||
"The desktop panel follows the Launcher 332–352 px width range with a 21.6 px shell radius and a 20 px page gap.",
|
||||
"Active route state uses the active surface and icon contrast from the theme."
|
||||
]
|
||||
},
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"schemaVersion": "1.0.0",
|
||||
"component": "Icon",
|
||||
"package": "@nodedc/ui-react",
|
||||
"baseLibrary": "lucide-react",
|
||||
"defaultSize": 18,
|
||||
"supportedSizes": [16, 18, 20],
|
||||
"strokeWidth": 1.8,
|
||||
"groups": [
|
||||
{
|
||||
"id": "window-layer",
|
||||
"label": "Окно и слой",
|
||||
"referenceSources": ["launcher", "engine"],
|
||||
"names": ["close", "plus", "expand", "minimize", "refresh", "panel", "apps"]
|
||||
},
|
||||
{
|
||||
"id": "navigation",
|
||||
"label": "Навигация",
|
||||
"referenceSources": ["launcher", "engine", "bim-viewer"],
|
||||
"names": ["chevron-left", "chevron-right", "chevron-down", "grid", "list", "sliders", "search"]
|
||||
},
|
||||
{
|
||||
"id": "editing",
|
||||
"label": "Редактирование",
|
||||
"referenceSources": ["launcher", "seo"],
|
||||
"names": ["save", "edit", "trash", "copy", "upload", "download", "external"]
|
||||
},
|
||||
{
|
||||
"id": "state-access",
|
||||
"label": "Состояние и доступ",
|
||||
"referenceSources": ["launcher", "seo", "task-manager"],
|
||||
"names": ["check", "alert", "activity", "lock", "key", "shield", "circle"]
|
||||
},
|
||||
{
|
||||
"id": "entities",
|
||||
"label": "Сущности",
|
||||
"referenceSources": ["launcher", "task-manager"],
|
||||
"names": ["profile", "users", "building", "globe", "database", "network", "inbox", "mail"]
|
||||
},
|
||||
{
|
||||
"id": "content",
|
||||
"label": "Контент",
|
||||
"referenceSources": ["seo", "bim-viewer", "engine"],
|
||||
"names": ["image", "video", "file", "folder", "clipboard", "settings"]
|
||||
}
|
||||
],
|
||||
"rules": [
|
||||
"Use semantic icon names from this registry instead of importing an application-local icon by shape.",
|
||||
"Icons inherit currentColor; their button surface, active state and hit target are owned by Button, IconButton or the containing pattern.",
|
||||
"Do not copy the complete Font Awesome or Lucide vendor catalog into application code.",
|
||||
"A new icon requires a confirmed product use, a registry entry and a catalog specimen."
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": "1.0.0",
|
||||
"libraryVersion": "0.2.0",
|
||||
"libraryVersion": "0.3.0",
|
||||
"name": "NODE.DC Design System",
|
||||
"purpose": "Canonical code-level UI system for current and future NODE.DC applications.",
|
||||
"packages": [
|
||||
@@ -28,6 +28,7 @@
|
||||
"sourceRegistry": "sources.json",
|
||||
"componentRegistry": "components.json",
|
||||
"candidateRegistry": "candidates.json",
|
||||
"iconRegistry": "icons.json",
|
||||
"documentation": {
|
||||
"architecture": "../docs/ARCHITECTURE.md",
|
||||
"components": "../docs/COMPONENTS.md",
|
||||
@@ -36,7 +37,9 @@
|
||||
"baseline": "../docs/SOURCE_BASELINE.md",
|
||||
"governance": "../docs/GOVERNANCE.md",
|
||||
"adoption": "../docs/ADOPTION.md",
|
||||
"candidates": "../docs/CANDIDATES.md"
|
||||
"candidates": "../docs/CANDIDATES.md",
|
||||
"applicationTemplate": "../docs/APPLICATION_TEMPLATE.md",
|
||||
"icons": "../docs/ICONS.md"
|
||||
},
|
||||
"operatingRule": "Check this registry before creating a NODE.DC interface element. Reuse or extend the canonical export instead of creating an application-local copy."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user