Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计提醒

phoenix-duskmoon-uiPhoenix duskmoon UI 搜索

Agent Skill

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

总安装

360

周安装

15

GitHub Stars

公开资料未说明

下载量

120
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/gsmlg-dev/code-agent --skill phoenix-duskmoon-ui

简介

用于辅助界面设计、视觉规范和交互体验优化。

  • 适合生成 UI 方案、检查视觉一致性或改进组件层级。
  • 使用时需结合品牌、设计系统和用户任务,避免堆砌装饰元素。
  • 涉及页面改动时应通过截图或浏览器预览检查文本溢出和对齐。
  • phoenix-duskmoon-ui 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Phoenix Duskmoon UI

Elixir component library providing 80+ LiveView HEEX components that render as HTML Custom Elements (<el-dm-*>) styled by @duskmoon-dev/core.

Version: 9.0.1

Installation

# mix.exs
{:phoenix_duskmoon, "~> 9.0"}
bun add @duskmoon-dev/core @duskmoon-dev/elements @duskmoon-dev/css-art @duskmoon-dev/art-elements

Setup

1. Import components in app_web.ex

defp html_helpers do
  quote do
    use PhoenixDuskmoon.Component    # all dm_* UI components
    use PhoenixDuskmoon.ArtComponent # all dm_art_* decorative components
  end
end

2. CSS (assets/css/app.css)

@import "tailwindcss";
@plugin "@duskmoon-dev/core/plugin";
@import "@duskmoon-dev/core/themes/sunshine";
@import "@duskmoon-dev/core/themes/moonlight";
@import "@duskmoon-dev/core/components";

For custom elements to inherit theme colors, include the element-theme-bridge (ships with the package or copy from the repo's assets/css/element-theme-bridge.css).

For CSS art effects, import each CSS art stylesheet you need:

@import "@duskmoon-dev/css-art/eclipse.css";
@import "@duskmoon-dev/css-art/snow.css";
/* ... etc */

3. JavaScript hooks (assets/js/app.js)

import { LiveSocket } from "phoenix_live_view";
import * as DuskmoonHooks from "phoenix_duskmoon/hooks";

let liveSocket = new LiveSocket("/live", Socket, {
  params: { _csrf_token: csrfToken },
  hooks: DuskmoonHooks
});

Merge with your own hooks: hooks: {...DuskmoonHooks,...MyHooks}.

4. Register custom elements

import "@duskmoon-dev/el-button/register";
import "@duskmoon-dev/el-card/register";
// ... register each el-* package you use

Without registration, <el-dm-*> content is invisible.

Architecture (v9)

HEEX Components (dm_btn, dm_card)
       |
Custom Elements (<el-dm-button>, <el-dm-card>)
       |
@duskmoon-dev/core (CSS variables, design tokens)

CSS class naming (BEM): dm-component, dm-component--variant, dm-component__element

Color mapping: "accent" in component APIs maps to "tertiary" in CSS tokens.

Hooks Reference

HookUsed byPurpose
WebComponentHookAny el-dm-* with phx-* eventsBridges custom element events to LiveView
FormElementHookForm el-dm-* inputsAdds phx-feedback-for support
ThemeSwitcherdm_theme_switcherTheme toggle + localStorage persistence
SpotlightSpotlight search componentCmd/Ctrl+K keyboard shortcut
PageHeaderdm_page_headerIntersectionObserver for scroll-based nav

Component Quick Reference

All components use dm_ prefix. Common attributes across most components:

  • id, class — standard HTML
  • variant — visual style (values vary per component)
  • color — primary | secondary | tertiary | accent | info | success | warning | error
  • size — xs | sm | md | lg (varies per component)
  • disabled — boolean
  • rest — passes through global HTML attributes

For full component catalog with all attributes and slots, see references/components.md.

Action

FunctionModuleDescription
dm_btnAction.ButtonButton with variants, confirm dialog, noise effect
dm_linkAction.LinkLiveView-aware link (navigate/patch/href)
dm_dropdownAction.DropdownPopover-based dropdown with trigger + content slots
dm_menu / dm_menu_itemAction.MenuAnchored menu with placement control
dm_toggle_groupAction.ToggleToggle button group (segmented, chip, etc.)

Data Display

FunctionModuleDescription
dm_accordionDataDisplay.AccordionMulti-panel expand/collapse
dm_avatarDataDisplay.AvatarUser avatar with status indicators
dm_badgeDataDisplay.BadgeLabel badge with color variants
dm_card / dm_async_cardDataDisplay.CardContent card with title/action slots
dm_chipDataDisplay.ChipDeletable chip/tag
dm_collapse / dm_collapse_groupDataDisplay.CollapseSingle collapsible panel
dm_flash / dm_flash_groupDataDisplay.FlashFlash messages
dm_listDataDisplay.ListStructured list with icons and subtitles
dm_markdownDataDisplay.MarkdownMarkdown renderer with syntax highlighting
dm_pagination / dm_pagination_thinDataDisplay.PaginationPage navigation
dm_popoverDataDisplay.PopoverContextual overlay with trigger
dm_progressDataDisplay.ProgressLinear/circular progress
dm_skeleton_*DataDisplay.Skeleton8 skeleton variants (text, avatar, card, table, list, form, comment, base)
dm_statDataDisplay.StatStat display with icon slot
dm_tableDataDisplay.TableData table with streaming support
dm_timelineDataDisplay.TimelineVertical/horizontal timeline
dm_tooltipDataDisplay.TooltipTooltip wrapper

Data Entry

FunctionModuleDescription
dm_formDataEntry.FormForm container + layout helpers (dm_label, dm_error, dm_alert, dm_fieldset, dm_form_row, dm_form_grid, dm_form_section, dm_form_divider, dm_form_inline, dm_form_hint, dm_form_counter)
dm_inputDataEntry.InputUniversal input (30+ types via type attr)
dm_compact_inputDataEntry.CompactInputCompact variant of input
dm_checkboxDataEntry.CheckboxCheckbox with label
dm_radioDataEntry.RadioRadio button with label
dm_selectDataEntry.SelectSelect dropdown
dm_switchDataEntry.SwitchToggle switch
dm_sliderDataEntry.SliderRange slider
dm_textareaDataEntry.TextareaMulti-line text input
dm_ratingDataEntry.RatingStar rating
dm_segment_controlDataEntry.SegmentControlSegmented control
dm_multi_selectDataEntry.MultiSelectMulti-select with tags
dm_autocompleteDataEntry.AutocompleteAutocomplete input
dm_otp_inputDataEntry.OtpInputOTP code input
dm_pin_inputDataEntry.PinInputPIN input
dm_file_uploadDataEntry.FileUploadFile upload area
dm_time_inputDataEntry.TimeInputTime picker
dm_cascaderDataEntry.CascaderCascading select
dm_tree_selectDataEntry.TreeSelectTree-structured select
dm_markdown_inputDataEntry.MarkdownInputMarkdown editor with preview

Feedback

FunctionModuleDescription
dm_modalFeedback.DialogModal dialog with trigger/title/body/footer slots
dm_loading_spinner / dm_loading_exFeedback.LoadingLoading indicators
dm_toast / dm_toast_containerFeedback.ToastToast notifications
dm_snackbar / dm_snackbar_containerFeedback.SnackbarSnackbar messages

Navigation

FunctionModuleDescription
dm_actionbarNavigation.ActionbarAction toolbar with left/right slots
dm_appbar / dm_simple_appbarNavigation.AppbarTop navigation bar
dm_bottom_navNavigation.BottomNavMobile bottom navigation
dm_breadcrumbNavigation.BreadcrumbBreadcrumb trail
dm_left_menu / dm_left_menu_groupNavigation.LeftMenuSidebar menu
dm_navbarNavigation.NavbarHorizontal navbar (start/center/end)
dm_nested_menu / dm_nested_menu_itemNavigation.NestedMenuNested collapsible menu
dm_page_footerNavigation.PageFooterPage footer with sections
dm_page_headerNavigation.PageHeaderPage header with scroll-aware nav (needs hook)
dm_stepperNavigation.StepperCSS-only stepper
dm_stepsNavigation.StepsStepper via custom element
dm_tabNavigation.TabTabbed content

Layout

FunctionModuleDescription
dm_bottom_sheetLayout.BottomSheetBottom sheet overlay
dm_dividerLayout.DividerHorizontal/vertical divider
dm_drawerLayout.DrawerSlide-out drawer panel
dm_theme_switcherLayout.ThemeSwitcherTheme toggle (needs hook)

Icon

FunctionModuleDescription
dm_mdiIcon.IconsMaterial Design Icons (7000+ icons)
dm_bsiIcon.IconsBootstrap Icons (2000+ icons)

CSS Art (decorative)

All art components require id (required string) and accept class + rest global attrs. Import via use PhoenixDuskmoon.ArtComponent.

FunctionModuleDescription
dm_art_atomArtComponent.AtomAnimated atom
dm_art_cat_stargazerArtComponent.CatStargazerCat stargazer scene
dm_art_circular_galleryArtComponent.CircularGalleryCircular gallery
dm_art_color_spinArtComponent.ColorSpinColor spin effect
dm_art_eclipseArtComponent.EclipseAnimated eclipse
dm_art_flower_animationArtComponent.FlowerAnimationFlower animation
dm_art_gemini_inputArtComponent.GeminiInputGemini-style input (size, placeholder)
dm_art_moonArtComponent.MoonMoon scene
dm_art_mountainArtComponent.MountainMountain landscape
dm_art_plasma_ballArtComponent.PlasmaBallInteractive plasma ball
dm_art_snowArtComponent.SnowFalling snowflakes (unicode, fall)
dm_art_sunArtComponent.SunSun scene
dm_art_synthwave_starfieldArtComponent.SynthwaveStarfieldSynthwave starfield

Usage Examples

<%!-- Button with variant --%>
<.dm_btn variant="primary" size="md">Save</.dm_btn>
<.dm_btn variant="error" shape="circle" loading={@saving}>X</.dm_btn>

<%!-- Button with confirmation dialog --%>
<.dm_btn confirm="Delete this item?" phx-click="delete" phx-value-id={@item.id}>
  Delete
</.dm_btn>

<%!-- Card with slots --%>
<.dm_card variant="bordered">
  <:title>Dashboard</:title>
  Content here
  <:action><.dm_btn variant="primary">View</.dm_btn></:action>
</.dm_card>

<%!-- Icons --%>
<.dm_mdi name="home" class="w-6 h-6" />
<.dm_bsi name="house" class="w-5 h-5" />

<%!-- Form with inputs --%>
<.dm_form for={@form} phx-submit="save">
  <.dm_input field={@form[:name]} label="Name" />
  <.dm_select field={@form[:role]} label="Role" options={[{"admin", "Admin"}, {"user", "User"}]} />
  <.dm_switch field={@form[:active]} label="Active" />
  <:actions>
    <.dm_btn variant="primary" type="submit">Save</.dm_btn>
  </:actions>
</.dm_form>

<%!-- Navigation --%>
<.dm_appbar title="My App" title_to={~p"/"}>
  <:menu to={~p"/dashboard"} active={@active == :dashboard}>Dashboard</:menu>
  <:menu to={~p"/settings"}>Settings</:menu>
  <:user_profile>
    <.dm_avatar name={@current_user.name} size="sm" />
  </:user_profile>
</.dm_appbar>

<%!-- Theme switcher (requires ThemeSwitcher hook) --%>
<.dm_theme_switcher id="theme-toggle" theme={@theme} />

<%!-- Tabs --%>
<.dm_tab id="my-tabs" active_tab_index={0}>
  <:tab name="overview">Overview</:tab>
  <:tab name="details">Details</:tab>
  <:tab_content name="overview">Overview content</:tab_content>
  <:tab_content name="details">Details content</:tab_content>
</.dm_tab>

<%!-- Modal --%>
<.dm_modal id="confirm-modal">
  <:trigger><.dm_btn>Open</.dm_btn></:trigger>
  <:title>Confirm</:title>
  <:body>Are you sure?</:body>
  <:footer><.dm_btn variant="primary" phx-click="confirm">Yes</.dm_btn></:footer>
</.dm_modal>

<%!-- Art components --%>
<.dm_art_snow id="snow-1" />
<.dm_art_eclipse id="eclipse-1" />
<.dm_art_gemini_input id="ai-input" size="lg" placeholder="Ask anything..." />

Package Exports

Import pathFile
phoenix_duskmoonpriv/static/phoenix_duskmoon.js
phoenix_duskmoon/hooksassets/js/hooks/index.js
phoenix_duskmoon/csspriv/static/phoenix_duskmoon.css
phoenix_duskmoon/svg/mdi/*.svgpriv/mdi/svg/*.svg
phoenix_duskmoon/svg/bsi/*.svgpriv/bsi/svg/*.svg

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

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

平台分布

Codex

33.76%
按下载量换算41

Claude

30.04%
按下载量换算36

Cursor

19.09%
按下载量换算23

Gemini CLI

9.04%
按下载量换算11

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

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

安装前确认

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

来源信息

继续浏览同类 Skills