Nodel frontend
Build or modify Nodel node dashboards with content/index.xml, CSS, JavaScript, and Nodel XSL components. Use for dashboard layouts, controls, action and event bindings, responsive styling, and browser-side behavior. Do not use for generic web apps, script.py recipe logic, live-host REST operations, or Nodel platform source changes.From its SKILL.md
npx -y skills add scroix/nodel-skills --skill nodel-frontendAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.6 KB, as published. Nobody here has run it
Nodel Frontend Development
Build and revise the XML dashboards served from a Nodel node's content directory.
Workflow
- Inspect the node's actions, events, and existing
contentfiles before choosing controls. - Create or update
content/index.xml, keeping custom CSS and JavaScript optional. - Start with the minimal dashboard below and bind components to the node's real action and event names.
- Read the component reference before choosing tags or relying on an attribute.
- Read the pattern guide when composing a complete dashboard, adding custom styling, or handling dynamic behavior.
- Render the page against a running Nodel node and check the browser console as well as the node console.
File Layout
nodes/My Node/
├── script.py
├── nodeConfig.json
└── content
├── index.xml
├── css
│ └── custom.css
└── js
└── custom.js
Minimal Dashboard
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="v1/index.xsl"?>
<pages title='Dashboard' css='css/custom.css' js='js/custom.js'>
<page title='Main'>
<row>
<column xs='12' sm='6'>
<title>Power</title>
<button action='Power' arg='On'>Turn On</button>
<status event='Power'>Current power</status>
</column>
</row>
</page>
</pages>
Remove the css or js attribute when the corresponding file does not exist.
Critical Renderer Constraints
- Keep the
v1/index.xslprocessing instruction. Nodel transforms the XML through that stylesheet. - Use the stock component tags and attributes instead of assuming arbitrary HTML passes through.
- Lay out pages with the Bootstrap 3 twelve-column grid (
xs,sm,md, andlg). - Use
<image source='...'>, not<img>. Always providesource, including for event-backed images. - Place
<input>directly under<header>; the built-in rendered input type ischeckbox. - Put
<row>elements directly under<footer>. - Setting
coreon<pages>skips custom CSS and JavaScript loading. - Do not listen for a
nodel-eventDOM event. The renderer updates bound elements directly; observe the property it changes when custom JavaScript must react.
Binding Conventions
- Use
eventto display node state andactionto send a value. - Use
joinwhen the action and event share a name. - Use
datafor dynamic option or button collections emitted by the node. - Use
showeventandshowvaluefor conditional visibility. Some layout components also supporteventandvalue.
References
- Read
references/components.mdwhen selecting a component, checking supported children, or confirming attributes, sizing, bindings, and renderer caveats. - Read
references/patterns.mdwhen assembling full dashboards, admin locks, dynamic controls, responsive layouts, confirmation flows, or custom CSS and JavaScript.
Completion Check
- Confirm every bound action and event exists on the target node.
- Confirm optional asset paths match the
contentdirectory layout. - Check the page at phone and desktop widths when the layout is responsive.
- Treat XML/XSL errors and browser-console errors as implementation failures.