Token导航 LogoToken导航TokenDH.com
前端设计需要联网github未标认证来源可访问许可证需确认审计通过

nodel-frontend节点前端

Agent Skill

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

总安装

214

周安装

9

GitHub Stars

1

下载量

75
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:nodel-frontend(节点前端)
来源仓库:https://github.com/scroix/nodel-skills
仓库路径:skills/nodel-frontend
安装命令:
npx skills add https://github.com/scroix/nodel-skills --skill nodel-frontend
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/scroix/nodel-skills --skill nodel-frontend

简介

nodel-frontend 用于辅助前端页面、组件、样式和交互逻辑的开发与维护。

  • 适合生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码。
  • 帮助整理组件结构、定位布局和性能问题,提升前端开发效率。
  • 安装命令:npx skills add https://github.com/scroix/nodel-skills --skill nodel-frontend。
  • 使用时需结合项目现有设计系统,避免生成孤立片段,建议配合本地预览验证效果。

SKILL.md

Nodel Frontend Development

Frontend File Structure

A node's frontend is defined in its folder:

nodes/My Node/
├── script.py              # Node logic
├── nodeConfig.json        # Node config and bindings
└── content                # Web root
    ├── index.xml          # Frontend definition
    ├── css
    |   └── custom.css     # Custom styles (optional)
    └── js
        └── custom.js      # Custom JavaScript (optional)

Basic Dashboard Structure

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="v1/index.xsl"?>
<pages title='Dashboard Title' css='css/custom.css' js='js/custom.js'>
  <page title='Main'>
    <row>
      <column sm="6">
        <!-- Left column content -->
      </column>
      <column sm="6">
        <!-- Right column content -->
      </column>
    </row>
  </page>
  <page title='Settings'>
    <!-- Another page -->
  </page>
</pages>

Root Attributes

AttributePurpose
titleDashboard title in header
themePassed through to Bootstrap navbar classes and theme CSS selection
logoCustom logo image path
cssCustom CSS file path
jsCustom JavaScript file path
coreCore/admin mode (skips custom css / js loading)

Layout System

Grid System

Uses Bootstrap 3 grid (12 columns):

<row>
  <column sm="12">Full width on small+ screens</column>
</row>

<row>
  <column sm="6">Half width</column>
  <column sm="6">Half width</column>
</row>

<row>
  <column sm="3">Quarter</column>
  <column sm="3">Quarter</column>
  <column sm="3">Quarter</column>
  <column sm="3">Quarter</column>
</row>

Breakpoints:

  • xs - Extra small (phones)
  • sm - Small (tablets)
  • md - Medium (desktops)
  • lg - Large (large desktops)

Groups

Visual grouping with background:

<group>
  <title>Power Control</title>
  <button action="Power" arg="On">Turn On</button>
  <button action="Power" arg="Off">Turn Off</button>
</group>

Page Groups

Dropdown navigation for many pages:

<pagegroup title='Meeting Rooms'>
  <page title='Room A'>...</page>
  <page title='Room B'>...</page>
  <page title='Room C'>...</page>
</pagegroup>

UI Components

See references/components.md for complete component reference.

Notes:

  • Use <image source='...'> for images (<img> is not a supported component tag).
  • <input> is header-only (place directly under <header>; checkbox is the built-in rendered type).
  • <footer> should contain <row> children.

Buttons

<!-- Simple action button -->
<button action='Power' arg='On' class='btn-success'>Turn On</button>

<!-- Confirmation before action -->
<button action='Reboot' confirm='true'>Reboot</button>

<!-- PIN confirmation -->
<button action='AdminMode' confirm='code' arg='true'>Unlock</button>

<!-- Momentary button (on while pressed) -->
<button type='momentary' action-on='VolumeUp' action-off='VolumeStop'>Vol +</button>

<!-- Multiple actions -->
<button action='["Action1","Action2","Action3"]'>Multiple</button>

Button Groups

<buttongroup>
  <button action='Source' arg='HDMI1'>HDMI 1</button>
  <button action='Source' arg='HDMI2'>HDMI 2</button>
  <button action='Source' arg='DP1'>DisplayPort</button>
</buttongroup>

Switches

<!-- On/Off toggle -->
<switch event='Power' action='Power' class='btn-primary'/>

<!-- Partial switch (shows current state) -->
<partialswitch event='Power' action='Power'/>

<!-- With confirmation -->
<partialswitch event='Power' action='Power' confirm='true'/>

Pills (Radio Buttons)

<pills event='Source' action='Source'>
  <pill value='HDMI1'>HDMI 1</pill>
  <pill value='HDMI2'>HDMI 2</pill>
  <pill value='DP1'>DisplayPort</pill>
</pills>

Select Dropdown

<select event='Source' action='Source' class='btn-default'>
  <item value='HDMI1'>HDMI 1</item>
  <item value='HDMI2'>HDMI 2</item>
  <item value='DP1'>DisplayPort</item>
</select>

<!-- Dynamic options from node -->
<dynamicselect data='SourceList' event='Source' action='Source'/>

Range Slider

<!-- Basic slider -->
<range event='Volume' action='Volume' min='0' max='100'/>

<!-- With mute button -->
<range event='Volume' action='Volume' type='mute' min='0' max='100'/>

<!-- Vertical slider -->
<range event='Volume' action='Volume' type='vertical' height='250'/>

<!-- With nudge buttons -->
<range event='Volume' action='Volume' min='0' max='100' nudge='5'/>

Behavior details:

  • type='mute' creates a mute toggle bound to {baseName}Muting (for Volume, bind VolumeMuting).
  • nudge buttons only appear if action or join is present.

Status Display

<!-- Status box with event binding -->
<status event='DeviceStatus'>Device Status</status>

<!-- With badge -->
<status event='Status1'>
  <badge event='OnlineStatus'/>
  Main Status
</status>

<!-- With link -->
<status event='Status'>
  <link url='http://device.local'>Open Device</link>
  Status text here
</status>

Meters

<meter event='AudioLevel'/>
<meter event='CPUUsage'/>
<meter event='dBLevel' range='db'/>

Text Display

<title>Section Title</title>
<subtitle>Section Subtitle</subtitle>
<text>Descriptive text here</text>
<field event='CurrentValue'/>
<panel height='100' event='LongText'/>

Conditional Visibility

Show/hide elements based on event values:

<!-- Show only when Power is "On" -->
<button showevent='Power' showvalue='On' action='Settings'>Settings</button>

<!-- Show when Power is "On" OR "Standby" -->
<column showevent='Power' showvalue='["On","Standby"]'>
  ...
</column>

<!-- Column visibility -->
<column sm='6' event='AdminMode' value='true'>
  Admin-only controls
</column>

Icons

Using Font Awesome icons:

<button action='Power' arg='On'>
  <icon lib='fa' type='power-off' style='fas'/>
</button>

<button action='VolumeUp'>
  <icon lib='fa' type='volume-up' size='2' style='fas'/>
</button>

Icon attributes:

  • lib - Icon library (fa for Font Awesome)
  • type - Icon name (e.g., power-off, volume-up)
  • style - Icon style (fas solid, far regular)
  • size - Size multiplier (1-5)

Badges

Status indicators:

<button action='Source'>
  <badge event='SourceOnline'/>
  Select Source
</button>

<status event='MainStatus'>
  <badge event='SubStatus'/>
  <partialbadge event='PartialStatus'/>
  Status Text
</status>

QR Codes

<qrcode text='https://example.com' height='128'/>
<qrcode event='DynamicURL' height='128' help='Scan to connect'/>

Header Customization

<pages title='My Dashboard'>
  <header>
    <nodel type='nav'/>    <!-- Node navigation dropdown -->
    <nodel type='edit'/>   <!-- Edit functions dropdown -->
    <input type='checkbox' event='AdminMode' action='AdminMode'>Admin</input>
    <button action='Refresh'>Refresh</button>
  </header>
  ...
</pages>

Custom Styling

custom.css

/* Override button colors */
.btn-power-on {
  background-color: #4CAF50;
}

/* Blur images until hover */
img {
  filter: blur(5px);
  transition: filter 0.3s ease;
}
img:hover {
  filter: blur(0);
}

/* Custom status colors */
.status-warning {
  background-color: #ff9800;
}

custom.js

// Add custom behavior
$(document).ready(function() {
  // Custom initialization
});

// Handle custom events
$(document).on('nodel-event', function(e, data) {
  console.log('Event:', data);
});

Common Patterns

Admin Lock

<button join='AdminEnabled' confirm='code' arg='true' showevent='AdminDisabled'>
  <icon lib='fa' type='lock' style='fas'/>
</button>
<button join='AdminEnabled' arg='false' showevent='AdminEnabled'>
  <icon lib='fa' type='lock-open' style='fas'/>
</button>

Supporting script.py code:

local_event_AdminEnabled = LocalEvent({'schema': {'type': 'boolean'}})
local_event_AdminDisabled = LocalEvent({'schema': {'type': 'boolean'}})

@local_action({})
def AdminEnabled(arg):
    local_event_AdminEnabled.emit(arg)
    local_event_AdminDisabled.emit(not arg)

Dynamic Button Group

<dynamicbuttongroup join='Source' data='sourceData' confirmtext='Switch source?'/>

Multi-Page Dashboard

<pages title='AV Control'>
  <page title='Sources'>
    <!-- Source selection controls -->
  </page>
  <page title='Audio'>
    <!-- Audio controls -->
  </page>
  <page title='Lighting'>
    <!-- Lighting controls -->
  </page>
  <pagegroup title='Advanced'>
    <page title='Network'>...</page>
    <page title='Debug'>...</page>
  </pagegroup>
</pages>

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.2%
按下载量换算28

Claude

31.58%
按下载量换算24

Cursor

18.56%
按下载量换算14

Gemini CLI

10.38%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills