mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-02 15:23:19 +08:00
Enhance shell safety in skill argument assembly and add animated orbital motion demo
- Updated `assembleSkillArgs` function in `resume.md` and `run.md` to sanitize task goal for shell safety by escaping special characters. - Introduced a new animated orbital motion demo in `icon-concepts.html`, showcasing agents orbiting with varying speeds and a breathing core effect.
This commit is contained in:
@@ -54,11 +54,16 @@ When `--yes` or `-y`: Skip clarification questions, create task with inferred de
|
|||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
const args = $ARGUMENTS;
|
const args = $ARGUMENTS;
|
||||||
const autoYes = /(-y|--yes)/.test(args);
|
const autoYes = /(-y|--yes)\b/.test(args);
|
||||||
const fromIssue = args.match(/--from-issue\s+([\w,-]+)/)?.[1];
|
const fromIssue = args.match(/--from-issue\s+([\w,-]+)/)?.[1];
|
||||||
const typeFlag = args.match(/--type\s+([\w-]+)/)?.[1];
|
const typeFlag = args.match(/--type\s+([\w-]+)/)?.[1];
|
||||||
const priorityFlag = args.match(/--priority\s+(\d)/)?.[1];
|
const priorityFlag = args.match(/--priority\s+(\d)/)?.[1];
|
||||||
const description = args.replace(/(-y|--yes|--from-issue\s+[\w,-]+|--type\s+[\w-]+|--priority\s+\d)/g, '').trim().replace(/^["']|["']$/g, '');
|
|
||||||
|
// Extract description: content inside quotes (preferred), or fallback to stripping flags
|
||||||
|
const quotedMatch = args.match(/(?:^|\s)["']([^"']+)["']/);
|
||||||
|
const description = quotedMatch
|
||||||
|
? quotedMatch[1].trim()
|
||||||
|
: args.replace(/(-y|--yes|--from-issue\s+[\w,-]+|--type\s+[\w-]+|--priority\s+\d)/g, '').trim();
|
||||||
```
|
```
|
||||||
|
|
||||||
### Phase 2: Route — Import or Manual
|
### Phase 2: Route — Import or Manual
|
||||||
@@ -74,10 +79,19 @@ const description = args.replace(/(-y|--yes|--from-issue\s+[\w,-]+|--type\s+[\w-
|
|||||||
```javascript
|
```javascript
|
||||||
const issueIds = fromIssue.split(',');
|
const issueIds = fromIssue.split(',');
|
||||||
|
|
||||||
for (const issueId of issueIds) {
|
// Fetch all issues once (outside loop)
|
||||||
// 1. Fetch issue data
|
let issues = [];
|
||||||
|
try {
|
||||||
const issueJson = Bash(`ccw issue list --json`);
|
const issueJson = Bash(`ccw issue list --json`);
|
||||||
const issues = JSON.parse(issueJson).issues;
|
issues = JSON.parse(issueJson).issues || [];
|
||||||
|
} catch (e) {
|
||||||
|
console.log(`Error fetching CCW issues: ${e.message || e}`);
|
||||||
|
console.log('Ensure ccw is installed and issues exist. Use /issue:new to create issues first.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const issueId of issueIds) {
|
||||||
|
// 1. Find issue data
|
||||||
const issue = issues.find(i => i.id === issueId.trim());
|
const issue = issues.find(i => i.id === issueId.trim());
|
||||||
if (!issue) {
|
if (!issue) {
|
||||||
console.log(`Warning: Issue ${issueId} not found, skipping`);
|
console.log(`Warning: Issue ${issueId} not found, skipping`);
|
||||||
|
|||||||
@@ -366,8 +366,13 @@ function assembleSkillArgs(skillName, task, previousResult, autoYes, isFirst) {
|
|||||||
let args = '';
|
let args = '';
|
||||||
|
|
||||||
if (isFirst) {
|
if (isFirst) {
|
||||||
const goal = `${task.title}\n${task.description}`;
|
// Sanitize for shell safety
|
||||||
args = `"${goal.replace(/"/g, '\\"')}"`;
|
const goal = `${task.title}\n${task.description}`
|
||||||
|
.replace(/\\/g, '\\\\')
|
||||||
|
.replace(/"/g, '\\"')
|
||||||
|
.replace(/\$/g, '\\$')
|
||||||
|
.replace(/`/g, '\\`');
|
||||||
|
args = `"${goal}"`;
|
||||||
if (task.task_type === 'bugfix-hotfix') args += ' --hotfix';
|
if (task.task_type === 'bugfix-hotfix') args += ' --hotfix';
|
||||||
} else if (previousResult?.session_id) {
|
} else if (previousResult?.session_id) {
|
||||||
args = `--session="${previousResult.session_id}"`;
|
args = `--session="${previousResult.session_id}"`;
|
||||||
|
|||||||
@@ -405,9 +405,13 @@ function assembleSkillArgs(skillName, task, previousResult, autoYes, isFirst) {
|
|||||||
let args = '';
|
let args = '';
|
||||||
|
|
||||||
if (isFirst) {
|
if (isFirst) {
|
||||||
// First skill: pass task goal
|
// First skill: pass task goal — sanitize for shell safety
|
||||||
const goal = `${task.title}\n${task.description}`;
|
const goal = `${task.title}\n${task.description}`
|
||||||
args = `"${goal.replace(/"/g, '\\"')}"`;
|
.replace(/\\/g, '\\\\')
|
||||||
|
.replace(/"/g, '\\"')
|
||||||
|
.replace(/\$/g, '\\$')
|
||||||
|
.replace(/`/g, '\\`');
|
||||||
|
args = `"${goal}"`;
|
||||||
|
|
||||||
// bugfix-hotfix: add --hotfix
|
// bugfix-hotfix: add --hotfix
|
||||||
if (task.task_type === 'bugfix-hotfix') {
|
if (task.task_type === 'bugfix-hotfix') {
|
||||||
|
|||||||
@@ -2802,14 +2802,14 @@
|
|||||||
<g>
|
<g>
|
||||||
<circle cx="17" cy="9.7" r="2.2" fill="currentColor" opacity="0.12"/>
|
<circle cx="17" cy="9.7" r="2.2" fill="currentColor" opacity="0.12"/>
|
||||||
<circle cx="17" cy="9.7" r="1.6" fill="currentColor" opacity="0.5"/>
|
<circle cx="17" cy="9.7" r="1.6" fill="currentColor" opacity="0.5"/>
|
||||||
<svg x="15.2" y="7.9" width="3.6" height="3.6" viewBox="0 0 16 16" fill="#D97757" opacity="0.95">
|
<svg x="15.2" y="7.9" width="3.6" height="3.6" viewBox="0 0 16 16" fill="#D97757" stroke="none" opacity="0.95">
|
||||||
<path d="m3.127 10.604 3.135-1.76.053-.153-.053-.085H6.11l-.525-.032-1.791-.048-1.554-.065-1.505-.08-.38-.081L0 7.832l.036-.234.32-.214.455.04 1.009.069 1.513.105 1.097.064 1.626.17h.259l.036-.105-.089-.065-.068-.064-1.566-1.062-1.695-1.121-.887-.646-.48-.327-.243-.306-.104-.67.435-.48.585.04.15.04.593.456 1.267.981 1.654 1.218.242.202.097-.068.012-.049-.109-.181-.9-1.626-.96-1.655-.428-.686-.113-.411a2 2 0 0 1-.068-.484l.496-.674L4.446 0l.662.089.279.242.411.94.666 1.48 1.033 2.014.302.597.162.553.06.17h.105v-.097l.085-1.134.157-1.392.154-1.792.052-.504.25-.605.497-.327.387.186.319.456-.045.294-.19 1.23-.37 1.93-.243 1.29h.142l.161-.16.654-.868 1.097-1.372.484-.545.565-.601.363-.287h.686l.505.751-.226.775-.707.895-.585.759-.839 1.13-.524.904.048.072.125-.012 1.897-.403 1.024-.186 1.223-.21.553.258.06.263-.218.536-1.307.323-1.533.307-2.284.54-.028.02.032.04 1.029.098.44.024h1.077l2.005.15.525.346.315.424-.053.323-.807.411-3.631-.863-.872-.218h-.12v.073l.726.71 1.331 1.202 1.667 1.55.084.383-.214.302-.226-.032-1.464-1.101-.565-.497-1.28-1.077h-.084v.113l.295.432 1.557 2.34.08.718-.112.234-.404.141-.444-.08-.911-1.28-.94-1.44-.759-1.291-.093.053-.448 4.821-.21.246-.484.186-.403-.307-.214-.496.214-.98.258-1.28.21-1.016.19-1.263.112-.42-.008-.028-.092.012-.953 1.307-1.448 1.957-1.146 1.227-.274.109-.477-.247.045-.44.266-.39 1.586-2.018.956-1.25.617-.723-.004-.105h-.036l-4.212 2.736-.75.096-.324-.302.04-.496.154-.162 1.267-.871z"/>
|
<path d="m3.127 10.604 3.135-1.76.053-.153-.053-.085H6.11l-.525-.032-1.791-.048-1.554-.065-1.505-.08-.38-.081L0 7.832l.036-.234.32-.214.455.04 1.009.069 1.513.105 1.097.064 1.626.17h.259l.036-.105-.089-.065-.068-.064-1.566-1.062-1.695-1.121-.887-.646-.48-.327-.243-.306-.104-.67.435-.48.585.04.15.04.593.456 1.267.981 1.654 1.218.242.202.097-.068.012-.049-.109-.181-.9-1.626-.96-1.655-.428-.686-.113-.411a2 2 0 0 1-.068-.484l.496-.674L4.446 0l.662.089.279.242.411.94.666 1.48 1.033 2.014.302.597.162.553.06.17h.105v-.097l.085-1.134.157-1.392.154-1.792.052-.504.25-.605.497-.327.387.186.319.456-.045.294-.19 1.23-.37 1.93-.243 1.29h.142l.161-.16.654-.868 1.097-1.372.484-.545.565-.601.363-.287h.686l.505.751-.226.775-.707.895-.585.759-.839 1.13-.524.904.048.072.125-.012 1.897-.403 1.024-.186 1.223-.21.553.258.06.263-.218.536-1.307.323-1.533.307-2.284.54-.028.02.032.04 1.029.098.44.024h1.077l2.005.15.525.346.315.424-.053.323-.807.411-3.631-.863-.872-.218h-.12v.073l.726.71 1.331 1.202 1.667 1.55.084.383-.214.302-.226-.032-1.464-1.101-.565-.497-1.28-1.077h-.084v.113l.295.432 1.557 2.34.08.718-.112.234-.404.141-.444-.08-.911-1.28-.94-1.44-.759-1.291-.093.053-.448 4.821-.21.246-.484.186-.403-.307-.214-.496.214-.98.258-1.28.21-1.016.19-1.263.112-.42-.008-.028-.092.012-.953 1.307-1.448 1.957-1.146 1.227-.274.109-.477-.247.045-.44.266-.39 1.586-2.018.956-1.25.617-.723-.004-.105h-.036l-4.212 2.736-.75.096-.324-.302.04-.496.154-.162 1.267-.871z"/>
|
||||||
</svg>
|
</svg>
|
||||||
</g>
|
</g>
|
||||||
<g>
|
<g>
|
||||||
<circle cx="8" cy="16" r="2.2" fill="currentColor" opacity="0.12"/>
|
<circle cx="8" cy="16" r="2.2" fill="currentColor" opacity="0.12"/>
|
||||||
<circle cx="8" cy="16" r="1.6" fill="currentColor" opacity="0.5"/>
|
<circle cx="8" cy="16" r="1.6" fill="currentColor" opacity="0.5"/>
|
||||||
<svg x="6.2" y="14.2" width="3.6" height="3.6" viewBox="0 0 16 16" fill="#10A37F" opacity="0.95">
|
<svg x="6.2" y="14.2" width="3.6" height="3.6" viewBox="0 0 16 16" fill="#10A37F" stroke="none" opacity="0.95">
|
||||||
<path d="M14.949 6.547a3.94 3.94 0 0 0-.348-3.273 4.11 4.11 0 0 0-4.4-1.934A4.1 4.1 0 0 0 8.423.2 4.15 4.15 0 0 0 6.305.086a4.1 4.1 0 0 0-1.891.948 4.04 4.04 0 0 0-1.158 1.753 4.1 4.1 0 0 0-1.563.679A4 4 0 0 0 .554 4.72a3.99 3.99 0 0 0 .502 4.731 3.94 3.94 0 0 0 .346 3.274 4.11 4.11 0 0 0 4.402 1.933c.382.425.852.764 1.377.995.526.231 1.095.35 1.67.346 1.78.002 3.358-1.132 3.901-2.804a4.1 4.1 0 0 0 1.563-.68 4 4 0 0 0 1.14-1.253 3.99 3.99 0 0 0-.506-4.716m-6.097 8.406a3.05 3.05 0 0 1-1.945-.694l.096-.054 3.23-1.838a.53.53 0 0 0 .265-.455v-4.49l1.366.778q.02.011.025.035v3.722c-.003 1.653-1.361 2.992-3.037 2.996m-6.53-2.75a2.95 2.95 0 0 1-.36-2.01l.095.057L5.29 12.09a.53.53 0 0 0 .527 0l3.949-2.246v1.555a.05.05 0 0 1-.022.041L6.473 13.3c-1.454.826-3.311.335-4.15-1.098m-.85-6.94A3.02 3.02 0 0 1 3.07 3.949v3.785a.51.51 0 0 0 .262.451l3.93 2.237-1.366.779a.05.05 0 0 1-.048 0L2.585 9.342a2.98 2.98 0 0 1-1.113-4.094zm11.216 2.571L8.747 5.576l1.362-.776a.05.05 0 0 1 .048 0l3.265 1.86a3 3 0 0 1 1.173 1.207 2.96 2.96 0 0 1-.27 3.2 3.05 3.05 0 0 1-1.36.997V8.279a.52.52 0 0 0-.276-.445m1.36-2.015-.097-.057-3.226-1.855a.53.53 0 0 0-.53 0L6.249 6.153V4.598a.04.04 0 0 1 .019-.04L9.533 2.7a3.07 3.07 0 0 1 3.257.139c.474.325.843.778 1.066 1.303.223.526.289 1.103.191 1.664zM5.503 8.575 4.139 7.8a.05.05 0 0 1-.026-.037V4.049c0-.57.166-1.127.476-1.607s.752-.864 1.275-1.105a3.08 3.08 0 0 1 3.234.41l-.096.054-3.23 1.838a.53.53 0 0 0-.265.455zm.742-1.577 1.758-1 1.762 1v2l-1.755 1-1.762-1z"/>
|
<path d="M14.949 6.547a3.94 3.94 0 0 0-.348-3.273 4.11 4.11 0 0 0-4.4-1.934A4.1 4.1 0 0 0 8.423.2 4.15 4.15 0 0 0 6.305.086a4.1 4.1 0 0 0-1.891.948 4.04 4.04 0 0 0-1.158 1.753 4.1 4.1 0 0 0-1.563.679A4 4 0 0 0 .554 4.72a3.99 3.99 0 0 0 .502 4.731 3.94 3.94 0 0 0 .346 3.274 4.11 4.11 0 0 0 4.402 1.933c.382.425.852.764 1.377.995.526.231 1.095.35 1.67.346 1.78.002 3.358-1.132 3.901-2.804a4.1 4.1 0 0 0 1.563-.68 4 4 0 0 0 1.14-1.253 3.99 3.99 0 0 0-.506-4.716m-6.097 8.406a3.05 3.05 0 0 1-1.945-.694l.096-.054 3.23-1.838a.53.53 0 0 0 .265-.455v-4.49l1.366.778q.02.011.025.035v3.722c-.003 1.653-1.361 2.992-3.037 2.996m-6.53-2.75a2.95 2.95 0 0 1-.36-2.01l.095.057L5.29 12.09a.53.53 0 0 0 .527 0l3.949-2.246v1.555a.05.05 0 0 1-.022.041L6.473 13.3c-1.454.826-3.311.335-4.15-1.098m-.85-6.94A3.02 3.02 0 0 1 3.07 3.949v3.785a.51.51 0 0 0 .262.451l3.93 2.237-1.366.779a.05.05 0 0 1-.048 0L2.585 9.342a2.98 2.98 0 0 1-1.113-4.094zm11.216 2.571L8.747 5.576l1.362-.776a.05.05 0 0 1 .048 0l3.265 1.86a3 3 0 0 1 1.173 1.207 2.96 2.96 0 0 1-.27 3.2 3.05 3.05 0 0 1-1.36.997V8.279a.52.52 0 0 0-.276-.445m1.36-2.015-.097-.057-3.226-1.855a.53.53 0 0 0-.53 0L6.249 6.153V4.598a.04.04 0 0 1 .019-.04L9.533 2.7a3.07 3.07 0 0 1 3.257.139c.474.325.843.778 1.066 1.303.223.526.289 1.103.191 1.664zM5.503 8.575 4.139 7.8a.05.05 0 0 1-.026-.037V4.049c0-.57.166-1.127.476-1.607s.752-.864 1.275-1.105a3.08 3.08 0 0 1 3.234.41l-.096.054-3.23 1.838a.53.53 0 0 0-.265.455zm.742-1.577 1.758-1 1.762 1v2l-1.755 1-1.762-1z"/>
|
||||||
</svg>
|
</svg>
|
||||||
</g>
|
</g>
|
||||||
@@ -2842,14 +2842,14 @@
|
|||||||
<g>
|
<g>
|
||||||
<circle cx="17" cy="9.7" r="2" fill="currentColor" opacity="0.12"/>
|
<circle cx="17" cy="9.7" r="2" fill="currentColor" opacity="0.12"/>
|
||||||
<circle cx="17" cy="9.7" r="1.4" fill="currentColor" opacity="0.5"/>
|
<circle cx="17" cy="9.7" r="1.4" fill="currentColor" opacity="0.5"/>
|
||||||
<svg x="15.5" y="8.2" width="3" height="3" viewBox="0 0 16 16" fill="#D97757" opacity="0.95">
|
<svg x="15.5" y="8.2" width="3" height="3" viewBox="0 0 16 16" fill="#D97757" stroke="none" opacity="0.95">
|
||||||
<path d="m3.127 10.604 3.135-1.76.053-.153-.053-.085H6.11l-.525-.032-1.791-.048-1.554-.065-1.505-.08-.38-.081L0 7.832l.036-.234.32-.214.455.04 1.009.069 1.513.105 1.097.064 1.626.17h.259l.036-.105-.089-.065-.068-.064-1.566-1.062-1.695-1.121-.887-.646-.48-.327-.243-.306-.104-.67.435-.48.585.04.15.04.593.456 1.267.981 1.654 1.218.242.202.097-.068.012-.049-.109-.181-.9-1.626-.96-1.655-.428-.686-.113-.411a2 2 0 0 1-.068-.484l.496-.674L4.446 0l.662.089.279.242.411.94.666 1.48 1.033 2.014.302.597.162.553.06.17h.105v-.097l.085-1.134.157-1.392.154-1.792.052-.504.25-.605.497-.327.387.186.319.456-.045.294-.19 1.23-.37 1.93-.243 1.29h.142l.161-.16.654-.868 1.097-1.372.484-.545.565-.601.363-.287h.686l.505.751-.226.775-.707.895-.585.759-.839 1.13-.524.904.048.072.125-.012 1.897-.403 1.024-.186 1.223-.21.553.258.06.263-.218.536-1.307.323-1.533.307-2.284.54-.028.02.032.04 1.029.098.44.024h1.077l2.005.15.525.346.315.424-.053.323-.807.411-3.631-.863-.872-.218h-.12v.073l.726.71 1.331 1.202 1.667 1.55.084.383-.214.302-.226-.032-1.464-1.101-.565-.497-1.28-1.077h-.084v.113l.295.432 1.557 2.34.08.718-.112.234-.404.141-.444-.08-.911-1.28-.94-1.44-.759-1.291-.093.053-.448 4.821-.21.246-.484.186-.403-.307-.214-.496.214-.98.258-1.28.21-1.016.19-1.263.112-.42-.008-.028-.092.012-.953 1.307-1.448 1.957-1.146 1.227-.274.109-.477-.247.045-.44.266-.39 1.586-2.018.956-1.25.617-.723-.004-.105h-.036l-4.212 2.736-.75.096-.324-.302.04-.496.154-.162 1.267-.871z"/>
|
<path d="m3.127 10.604 3.135-1.76.053-.153-.053-.085H6.11l-.525-.032-1.791-.048-1.554-.065-1.505-.08-.38-.081L0 7.832l.036-.234.32-.214.455.04 1.009.069 1.513.105 1.097.064 1.626.17h.259l.036-.105-.089-.065-.068-.064-1.566-1.062-1.695-1.121-.887-.646-.48-.327-.243-.306-.104-.67.435-.48.585.04.15.04.593.456 1.267.981 1.654 1.218.242.202.097-.068.012-.049-.109-.181-.9-1.626-.96-1.655-.428-.686-.113-.411a2 2 0 0 1-.068-.484l.496-.674L4.446 0l.662.089.279.242.411.94.666 1.48 1.033 2.014.302.597.162.553.06.17h.105v-.097l.085-1.134.157-1.392.154-1.792.052-.504.25-.605.497-.327.387.186.319.456-.045.294-.19 1.23-.37 1.93-.243 1.29h.142l.161-.16.654-.868 1.097-1.372.484-.545.565-.601.363-.287h.686l.505.751-.226.775-.707.895-.585.759-.839 1.13-.524.904.048.072.125-.012 1.897-.403 1.024-.186 1.223-.21.553.258.06.263-.218.536-1.307.323-1.533.307-2.284.54-.028.02.032.04 1.029.098.44.024h1.077l2.005.15.525.346.315.424-.053.323-.807.411-3.631-.863-.872-.218h-.12v.073l.726.71 1.331 1.202 1.667 1.55.084.383-.214.302-.226-.032-1.464-1.101-.565-.497-1.28-1.077h-.084v.113l.295.432 1.557 2.34.08.718-.112.234-.404.141-.444-.08-.911-1.28-.94-1.44-.759-1.291-.093.053-.448 4.821-.21.246-.484.186-.403-.307-.214-.496.214-.98.258-1.28.21-1.016.19-1.263.112-.42-.008-.028-.092.012-.953 1.307-1.448 1.957-1.146 1.227-.274.109-.477-.247.045-.44.266-.39 1.586-2.018.956-1.25.617-.723-.004-.105h-.036l-4.212 2.736-.75.096-.324-.302.04-.496.154-.162 1.267-.871z"/>
|
||||||
</svg>
|
</svg>
|
||||||
</g>
|
</g>
|
||||||
<g>
|
<g>
|
||||||
<circle cx="8" cy="16" r="2" fill="currentColor" opacity="0.12"/>
|
<circle cx="8" cy="16" r="2" fill="currentColor" opacity="0.12"/>
|
||||||
<circle cx="8" cy="16" r="1.4" fill="currentColor" opacity="0.5"/>
|
<circle cx="8" cy="16" r="1.4" fill="currentColor" opacity="0.5"/>
|
||||||
<svg x="6.5" y="14.5" width="3" height="3" viewBox="0 0 16 16" fill="#10A37F" opacity="0.95">
|
<svg x="6.5" y="14.5" width="3" height="3" viewBox="0 0 16 16" fill="#10A37F" stroke="none" opacity="0.95">
|
||||||
<path d="M14.949 6.547a3.94 3.94 0 0 0-.348-3.273 4.11 4.11 0 0 0-4.4-1.934A4.1 4.1 0 0 0 8.423.2 4.15 4.15 0 0 0 6.305.086a4.1 4.1 0 0 0-1.891.948 4.04 4.04 0 0 0-1.158 1.753 4.1 4.1 0 0 0-1.563.679A4 4 0 0 0 .554 4.72a3.99 3.99 0 0 0 .502 4.731 3.94 3.94 0 0 0 .346 3.274 4.11 4.11 0 0 0 4.402 1.933c.382.425.852.764 1.377.995.526.231 1.095.35 1.67.346 1.78.002 3.358-1.132 3.901-2.804a4.1 4.1 0 0 0 1.563-.68 4 4 0 0 0 1.14-1.253 3.99 3.99 0 0 0-.506-4.716m-6.097 8.406a3.05 3.05 0 0 1-1.945-.694l.096-.054 3.23-1.838a.53.53 0 0 0 .265-.455v-4.49l1.366.778q.02.011.025.035v3.722c-.003 1.653-1.361 2.992-3.037 2.996m-6.53-2.75a2.95 2.95 0 0 1-.36-2.01l.095.057L5.29 12.09a.53.53 0 0 0 .527 0l3.949-2.246v1.555a.05.05 0 0 1-.022.041L6.473 13.3c-1.454.826-3.311.335-4.15-1.098m-.85-6.94A3.02 3.02 0 0 1 3.07 3.949v3.785a.51.51 0 0 0 .262.451l3.93 2.237-1.366.779a.05.05 0 0 1-.048 0L2.585 9.342a2.98 2.98 0 0 1-1.113-4.094zm11.216 2.571L8.747 5.576l1.362-.776a.05.05 0 0 1 .048 0l3.265 1.86a3 3 0 0 1 1.173 1.207 2.96 2.96 0 0 1-.27 3.2 3.05 3.05 0 0 1-1.36.997V8.279a.52.52 0 0 0-.276-.445m1.36-2.015-.097-.057-3.226-1.855a.53.53 0 0 0-.53 0L6.249 6.153V4.598a.04.04 0 0 1 .019-.04L9.533 2.7a3.07 3.07 0 0 1 3.257.139c.474.325.843.778 1.066 1.303.223.526.289 1.103.191 1.664zM5.503 8.575 4.139 7.8a.05.05 0 0 1-.026-.037V4.049c0-.57.166-1.127.476-1.607s.752-.864 1.275-1.105a3.08 3.08 0 0 1 3.234.41l-.096.054-3.23 1.838a.53.53 0 0 0-.265.455zm.742-1.577 1.758-1 1.762 1v2l-1.755 1-1.762-1z"/>
|
<path d="M14.949 6.547a3.94 3.94 0 0 0-.348-3.273 4.11 4.11 0 0 0-4.4-1.934A4.1 4.1 0 0 0 8.423.2 4.15 4.15 0 0 0 6.305.086a4.1 4.1 0 0 0-1.891.948 4.04 4.04 0 0 0-1.158 1.753 4.1 4.1 0 0 0-1.563.679A4 4 0 0 0 .554 4.72a3.99 3.99 0 0 0 .502 4.731 3.94 3.94 0 0 0 .346 3.274 4.11 4.11 0 0 0 4.402 1.933c.382.425.852.764 1.377.995.526.231 1.095.35 1.67.346 1.78.002 3.358-1.132 3.901-2.804a4.1 4.1 0 0 0 1.563-.68 4 4 0 0 0 1.14-1.253 3.99 3.99 0 0 0-.506-4.716m-6.097 8.406a3.05 3.05 0 0 1-1.945-.694l.096-.054 3.23-1.838a.53.53 0 0 0 .265-.455v-4.49l1.366.778q.02.011.025.035v3.722c-.003 1.653-1.361 2.992-3.037 2.996m-6.53-2.75a2.95 2.95 0 0 1-.36-2.01l.095.057L5.29 12.09a.53.53 0 0 0 .527 0l3.949-2.246v1.555a.05.05 0 0 1-.022.041L6.473 13.3c-1.454.826-3.311.335-4.15-1.098m-.85-6.94A3.02 3.02 0 0 1 3.07 3.949v3.785a.51.51 0 0 0 .262.451l3.93 2.237-1.366.779a.05.05 0 0 1-.048 0L2.585 9.342a2.98 2.98 0 0 1-1.113-4.094zm11.216 2.571L8.747 5.576l1.362-.776a.05.05 0 0 1 .048 0l3.265 1.86a3 3 0 0 1 1.173 1.207 2.96 2.96 0 0 1-.27 3.2 3.05 3.05 0 0 1-1.36.997V8.279a.52.52 0 0 0-.276-.445m1.36-2.015-.097-.057-3.226-1.855a.53.53 0 0 0-.53 0L6.249 6.153V4.598a.04.04 0 0 1 .019-.04L9.533 2.7a3.07 3.07 0 0 1 3.257.139c.474.325.843.778 1.066 1.303.223.526.289 1.103.191 1.664zM5.503 8.575 4.139 7.8a.05.05 0 0 1-.026-.037V4.049c0-.57.166-1.127.476-1.607s.752-.864 1.275-1.105a3.08 3.08 0 0 1 3.234.41l-.096.054-3.23 1.838a.53.53 0 0 0-.265.455zm.742-1.577 1.758-1 1.762 1v2l-1.755 1-1.762-1z"/>
|
||||||
</svg>
|
</svg>
|
||||||
</g>
|
</g>
|
||||||
@@ -2970,6 +2970,119 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- D1-V2+++ Animated: Orbital motion -->
|
||||||
|
<div class="card" style="grid-column: 1 / -1;">
|
||||||
|
<h2>D1-V2+++ Animated <span class="badge" style="background:#6366F1;color:white;">Motion</span></h2>
|
||||||
|
<div class="zh">动态版 — AI 图标沿轨道运行 · 核心呼吸脉动 · 深度透明度切换</div>
|
||||||
|
<div class="desc">
|
||||||
|
Animated orbital motion based on D1-V2+++ Branded Agents.<br>
|
||||||
|
Agents orbit at different speeds (8s / 10s / 12s). Core breathes with a gentle pulse. Agents fade when passing behind the core plane.
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; gap: 40px; align-items: center; flex-wrap: wrap;">
|
||||||
|
<!-- Main animated showcase -->
|
||||||
|
<div style="display:flex;flex-direction:column;align-items:center;gap:8px;">
|
||||||
|
<svg viewBox="-1 -1 26 26" width="200" height="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" style="overflow:visible;">
|
||||||
|
<!-- Back orbit halves (static) -->
|
||||||
|
<path d="M4 12 A8 3 0 0 1 20 12" stroke-width="0.8" opacity="0.15"/>
|
||||||
|
<path d="M16.9 19.5 A8 3 30 0 1 7.1 4.5" stroke-width="0.8" opacity="0.15"/>
|
||||||
|
<path d="M7.1 19.5 A8 3 -30 0 1 16.9 4.5" stroke-width="0.8" opacity="0.15"/>
|
||||||
|
<!-- Core breathing pulse -->
|
||||||
|
<circle cx="12" cy="12" r="2.5" fill="currentColor" opacity="0.08">
|
||||||
|
<animate attributeName="opacity" dur="4s" repeatCount="indefinite" values="0.05;0.14;0.05" calcMode="spline" keySplines="0.4 0 0.6 1;0.4 0 0.6 1"/>
|
||||||
|
</circle>
|
||||||
|
<circle cx="12" cy="12" r="1.5" fill="currentColor" opacity="0.15">
|
||||||
|
<animate attributeName="opacity" dur="4s" repeatCount="indefinite" values="0.1;0.28;0.1" calcMode="spline" keySplines="0.4 0 0.6 1;0.4 0 0.6 1"/>
|
||||||
|
</circle>
|
||||||
|
<circle cx="12" cy="12" r="0.8" fill="currentColor" opacity="0.3">
|
||||||
|
<animate attributeName="opacity" dur="4s" repeatCount="indefinite" values="0.2;0.55;0.2" calcMode="spline" keySplines="0.4 0 0.6 1;0.4 0 0.6 1"/>
|
||||||
|
<animate attributeName="r" dur="4s" repeatCount="indefinite" values="0.7;1.1;0.7" calcMode="spline" keySplines="0.4 0 0.6 1;0.4 0 0.6 1"/>
|
||||||
|
</circle>
|
||||||
|
<!-- Front orbit halves (static) -->
|
||||||
|
<path d="M20 12 A8 3 0 0 1 4 12" stroke-width="1.2" opacity="0.7"/>
|
||||||
|
<path d="M7.1 4.5 A8 3 30 0 1 16.9 19.5" stroke-width="1.2" opacity="0.7"/>
|
||||||
|
<path d="M16.9 4.5 A8 3 -30 0 1 7.1 19.5" stroke-width="1.2" opacity="0.7"/>
|
||||||
|
<!-- Claude agent: horizontal orbit, 8s -->
|
||||||
|
<g>
|
||||||
|
<animateMotion dur="8s" repeatCount="indefinite" path="M20,12 A8,3,0,0,0,4,12 A8,3,0,0,0,20,12"/>
|
||||||
|
<animate attributeName="opacity" dur="8s" repeatCount="indefinite" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1" calcMode="spline" keySplines="0 0 1 1;0.4 0 0.6 1;0 0 1 1;0.4 0 0.6 1"/>
|
||||||
|
<circle r="2.2" fill="currentColor" opacity="0.12"/>
|
||||||
|
<circle r="1.6" fill="currentColor" opacity="0.5"/>
|
||||||
|
<svg x="-1.8" y="-1.8" width="3.6" height="3.6" viewBox="0 0 16 16" fill="#D97757" stroke="none" opacity="0.95">
|
||||||
|
<path d="m3.127 10.604 3.135-1.76.053-.153-.053-.085H6.11l-.525-.032-1.791-.048-1.554-.065-1.505-.08-.38-.081L0 7.832l.036-.234.32-.214.455.04 1.009.069 1.513.105 1.097.064 1.626.17h.259l.036-.105-.089-.065-.068-.064-1.566-1.062-1.695-1.121-.887-.646-.48-.327-.243-.306-.104-.67.435-.48.585.04.15.04.593.456 1.267.981 1.654 1.218.242.202.097-.068.012-.049-.109-.181-.9-1.626-.96-1.655-.428-.686-.113-.411a2 2 0 0 1-.068-.484l.496-.674L4.446 0l.662.089.279.242.411.94.666 1.48 1.033 2.014.302.597.162.553.06.17h.105v-.097l.085-1.134.157-1.392.154-1.792.052-.504.25-.605.497-.327.387.186.319.456-.045.294-.19 1.23-.37 1.93-.243 1.29h.142l.161-.16.654-.868 1.097-1.372.484-.545.565-.601.363-.287h.686l.505.751-.226.775-.707.895-.585.759-.839 1.13-.524.904.048.072.125-.012 1.897-.403 1.024-.186 1.223-.21.553.258.06.263-.218.536-1.307.323-1.533.307-2.284.54-.028.02.032.04 1.029.098.44.024h1.077l2.005.15.525.346.315.424-.053.323-.807.411-3.631-.863-.872-.218h-.12v.073l.726.71 1.331 1.202 1.667 1.55.084.383-.214.302-.226-.032-1.464-1.101-.565-.497-1.28-1.077h-.084v.113l.295.432 1.557 2.34.08.718-.112.234-.404.141-.444-.08-.911-1.28-.94-1.44-.759-1.291-.093.053-.448 4.821-.21.246-.484.186-.403-.307-.214-.496.214-.98.258-1.28.21-1.016.19-1.263.112-.42-.008-.028-.092.012-.953 1.307-1.448 1.957-1.146 1.227-.274.109-.477-.247.045-.44.266-.39 1.586-2.018.956-1.25.617-.723-.004-.105h-.036l-4.212 2.736-.75.096-.324-.302.04-.496.154-.162 1.267-.871z"/>
|
||||||
|
</svg>
|
||||||
|
</g>
|
||||||
|
<!-- OpenAI agent: 30° orbit, 10s, offset -3s -->
|
||||||
|
<g>
|
||||||
|
<animateMotion dur="10s" repeatCount="indefinite" begin="-3s" path="M7.1,4.5 A8,3,30,0,1,16.9,19.5 A8,3,30,0,1,7.1,4.5"/>
|
||||||
|
<animate attributeName="opacity" dur="10s" repeatCount="indefinite" begin="-3s" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1" calcMode="spline" keySplines="0 0 1 1;0.4 0 0.6 1;0 0 1 1;0.4 0 0.6 1"/>
|
||||||
|
<circle r="2.2" fill="currentColor" opacity="0.12"/>
|
||||||
|
<circle r="1.6" fill="currentColor" opacity="0.5"/>
|
||||||
|
<svg x="-1.8" y="-1.8" width="3.6" height="3.6" viewBox="0 0 16 16" fill="#10A37F" stroke="none" opacity="0.95">
|
||||||
|
<path d="M14.949 6.547a3.94 3.94 0 0 0-.348-3.273 4.11 4.11 0 0 0-4.4-1.934A4.1 4.1 0 0 0 8.423.2 4.15 4.15 0 0 0 6.305.086a4.1 4.1 0 0 0-1.891.948 4.04 4.04 0 0 0-1.158 1.753 4.1 4.1 0 0 0-1.563.679A4 4 0 0 0 .554 4.72a3.99 3.99 0 0 0 .502 4.731 3.94 3.94 0 0 0 .346 3.274 4.11 4.11 0 0 0 4.402 1.933c.382.425.852.764 1.377.995.526.231 1.095.35 1.67.346 1.78.002 3.358-1.132 3.901-2.804a4.1 4.1 0 0 0 1.563-.68 4 4 0 0 0 1.14-1.253 3.99 3.99 0 0 0-.506-4.716m-6.097 8.406a3.05 3.05 0 0 1-1.945-.694l.096-.054 3.23-1.838a.53.53 0 0 0 .265-.455v-4.49l1.366.778q.02.011.025.035v3.722c-.003 1.653-1.361 2.992-3.037 2.996m-6.53-2.75a2.95 2.95 0 0 1-.36-2.01l.095.057L5.29 12.09a.53.53 0 0 0 .527 0l3.949-2.246v1.555a.05.05 0 0 1-.022.041L6.473 13.3c-1.454.826-3.311.335-4.15-1.098m-.85-6.94A3.02 3.02 0 0 1 3.07 3.949v3.785a.51.51 0 0 0 .262.451l3.93 2.237-1.366.779a.05.05 0 0 1-.048 0L2.585 9.342a2.98 2.98 0 0 1-1.113-4.094zm11.216 2.571L8.747 5.576l1.362-.776a.05.05 0 0 1 .048 0l3.265 1.86a3 3 0 0 1 1.173 1.207 2.96 2.96 0 0 1-.27 3.2 3.05 3.05 0 0 1-1.36.997V8.279a.52.52 0 0 0-.276-.445m1.36-2.015-.097-.057-3.226-1.855a.53.53 0 0 0-.53 0L6.249 6.153V4.598a.04.04 0 0 1 .019-.04L9.533 2.7a3.07 3.07 0 0 1 3.257.139c.474.325.843.778 1.066 1.303.223.526.289 1.103.191 1.664zM5.503 8.575 4.139 7.8a.05.05 0 0 1-.026-.037V4.049c0-.57.166-1.127.476-1.607s.752-.864 1.275-1.105a3.08 3.08 0 0 1 3.234.41l-.096.054-3.23 1.838a.53.53 0 0 0-.265.455zm.742-1.577 1.758-1 1.762 1v2l-1.755 1-1.762-1z"/>
|
||||||
|
</svg>
|
||||||
|
</g>
|
||||||
|
<!-- Gemini agent: -30° orbit, 12s, offset -5s -->
|
||||||
|
<g>
|
||||||
|
<animateMotion dur="12s" repeatCount="indefinite" begin="-5s" path="M16.9,4.5 A8,3,-30,0,1,7.1,19.5 A8,3,-30,0,1,16.9,4.5"/>
|
||||||
|
<animate attributeName="opacity" dur="12s" repeatCount="indefinite" begin="-5s" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1" calcMode="spline" keySplines="0 0 1 1;0.4 0 0.6 1;0 0 1 1;0.4 0 0.6 1"/>
|
||||||
|
<circle r="2.2" fill="currentColor" opacity="0.12"/>
|
||||||
|
<circle r="1.6" fill="currentColor" opacity="0.5"/>
|
||||||
|
<svg x="-1.5" y="-1.5" width="3" height="3" viewBox="0 0 24 24" fill="none" stroke="none">
|
||||||
|
<path d="M3 12a9 9 0 0 0 9-9a9 9 0 0 0 9 9a9 9 0 0 0-9 9a9 9 0 0 0-9-9" stroke="#4285F4" stroke-width="2" fill="#4285F4" fill-opacity="0.3" opacity="0.95"/>
|
||||||
|
</svg>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
<span>200px</span>
|
||||||
|
</div>
|
||||||
|
<!-- Theme color animated demos -->
|
||||||
|
<div style="display:flex;flex-direction:column;gap:20px;">
|
||||||
|
<div style="display:flex;gap:20px;align-items:center;">
|
||||||
|
<div style="color:#3B82F6;">
|
||||||
|
<svg viewBox="-1 -1 26 26" width="64" height="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
|
||||||
|
<path d="M4 12 A8 3 0 0 1 20 12" stroke-width="0.9" opacity="0.15"/><path d="M16.9 19.5 A8 3 30 0 1 7.1 4.5" stroke-width="0.9" opacity="0.15"/><path d="M7.1 19.5 A8 3 -30 0 1 16.9 4.5" stroke-width="0.9" opacity="0.15"/>
|
||||||
|
<circle cx="12" cy="12" r="2" fill="currentColor" opacity="0.1"><animate attributeName="opacity" dur="4s" repeatCount="indefinite" values="0.06;0.18;0.06"/></circle>
|
||||||
|
<circle cx="12" cy="12" r="1" fill="currentColor" opacity="0.25"><animate attributeName="opacity" dur="4s" repeatCount="indefinite" values="0.15;0.4;0.15"/></circle>
|
||||||
|
<path d="M20 12 A8 3 0 0 1 4 12" stroke-width="1.3" opacity="0.75"/><path d="M7.1 4.5 A8 3 30 0 1 16.9 19.5" stroke-width="1.3" opacity="0.75"/><path d="M16.9 4.5 A8 3 -30 0 1 7.1 19.5" stroke-width="1.3" opacity="0.75"/>
|
||||||
|
<g><animateMotion dur="8s" repeatCount="indefinite" path="M20,12 A8,3,0,0,0,4,12 A8,3,0,0,0,20,12"/><animate attributeName="opacity" dur="8s" repeatCount="indefinite" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1"/><circle r="1.5" fill="#D97757" opacity="0.9"/></g>
|
||||||
|
<g><animateMotion dur="10s" repeatCount="indefinite" begin="-3s" path="M7.1,4.5 A8,3,30,0,1,16.9,19.5 A8,3,30,0,1,7.1,4.5"/><animate attributeName="opacity" dur="10s" repeatCount="indefinite" begin="-3s" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1"/><circle r="1.5" fill="#10A37F" opacity="0.9"/></g>
|
||||||
|
<g><animateMotion dur="12s" repeatCount="indefinite" begin="-5s" path="M16.9,4.5 A8,3,-30,0,1,7.1,19.5 A8,3,-30,0,1,16.9,4.5"/><animate attributeName="opacity" dur="12s" repeatCount="indefinite" begin="-5s" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1"/><circle r="1.5" fill="#4285F4" opacity="0.9"/></g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<span style="font-size:12px;opacity:0.5;">Brand Blue · 64px</span>
|
||||||
|
</div>
|
||||||
|
<div style="display:flex;gap:20px;align-items:center;">
|
||||||
|
<div style="color:#D97757;">
|
||||||
|
<svg viewBox="-1 -1 26 26" width="64" height="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
|
||||||
|
<path d="M4 12 A8 3 0 0 1 20 12" stroke-width="0.9" opacity="0.15"/><path d="M16.9 19.5 A8 3 30 0 1 7.1 4.5" stroke-width="0.9" opacity="0.15"/><path d="M7.1 19.5 A8 3 -30 0 1 16.9 4.5" stroke-width="0.9" opacity="0.15"/>
|
||||||
|
<circle cx="12" cy="12" r="2" fill="currentColor" opacity="0.1"><animate attributeName="opacity" dur="4s" repeatCount="indefinite" values="0.06;0.18;0.06"/></circle>
|
||||||
|
<circle cx="12" cy="12" r="1" fill="currentColor" opacity="0.25"><animate attributeName="opacity" dur="4s" repeatCount="indefinite" values="0.15;0.4;0.15"/></circle>
|
||||||
|
<path d="M20 12 A8 3 0 0 1 4 12" stroke-width="1.3" opacity="0.75"/><path d="M7.1 4.5 A8 3 30 0 1 16.9 19.5" stroke-width="1.3" opacity="0.75"/><path d="M16.9 4.5 A8 3 -30 0 1 7.1 19.5" stroke-width="1.3" opacity="0.75"/>
|
||||||
|
<g><animateMotion dur="8s" repeatCount="indefinite" path="M20,12 A8,3,0,0,0,4,12 A8,3,0,0,0,20,12"/><animate attributeName="opacity" dur="8s" repeatCount="indefinite" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1"/><circle r="1.5" fill="#D97757" opacity="0.9"/></g>
|
||||||
|
<g><animateMotion dur="10s" repeatCount="indefinite" begin="-3s" path="M7.1,4.5 A8,3,30,0,1,16.9,19.5 A8,3,30,0,1,7.1,4.5"/><animate attributeName="opacity" dur="10s" repeatCount="indefinite" begin="-3s" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1"/><circle r="1.5" fill="#10A37F" opacity="0.9"/></g>
|
||||||
|
<g><animateMotion dur="12s" repeatCount="indefinite" begin="-5s" path="M16.9,4.5 A8,3,-30,0,1,7.1,19.5 A8,3,-30,0,1,16.9,4.5"/><animate attributeName="opacity" dur="12s" repeatCount="indefinite" begin="-5s" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1"/><circle r="1.5" fill="#4285F4" opacity="0.9"/></g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<span style="font-size:12px;opacity:0.5;">Claude · 64px</span>
|
||||||
|
</div>
|
||||||
|
<div style="display:flex;gap:20px;align-items:center;">
|
||||||
|
<div style="color:#8B5CF6;">
|
||||||
|
<svg viewBox="-1 -1 26 26" width="64" height="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
|
||||||
|
<path d="M4 12 A8 3 0 0 1 20 12" stroke-width="0.9" opacity="0.15"/><path d="M16.9 19.5 A8 3 30 0 1 7.1 4.5" stroke-width="0.9" opacity="0.15"/><path d="M7.1 19.5 A8 3 -30 0 1 16.9 4.5" stroke-width="0.9" opacity="0.15"/>
|
||||||
|
<circle cx="12" cy="12" r="2" fill="currentColor" opacity="0.1"><animate attributeName="opacity" dur="4s" repeatCount="indefinite" values="0.06;0.18;0.06"/></circle>
|
||||||
|
<circle cx="12" cy="12" r="1" fill="currentColor" opacity="0.25"><animate attributeName="opacity" dur="4s" repeatCount="indefinite" values="0.15;0.4;0.15"/></circle>
|
||||||
|
<path d="M20 12 A8 3 0 0 1 4 12" stroke-width="1.3" opacity="0.75"/><path d="M7.1 4.5 A8 3 30 0 1 16.9 19.5" stroke-width="1.3" opacity="0.75"/><path d="M16.9 4.5 A8 3 -30 0 1 7.1 19.5" stroke-width="1.3" opacity="0.75"/>
|
||||||
|
<g><animateMotion dur="8s" repeatCount="indefinite" path="M20,12 A8,3,0,0,0,4,12 A8,3,0,0,0,20,12"/><animate attributeName="opacity" dur="8s" repeatCount="indefinite" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1"/><circle r="1.5" fill="#D97757" opacity="0.9"/></g>
|
||||||
|
<g><animateMotion dur="10s" repeatCount="indefinite" begin="-3s" path="M7.1,4.5 A8,3,30,0,1,16.9,19.5 A8,3,30,0,1,7.1,4.5"/><animate attributeName="opacity" dur="10s" repeatCount="indefinite" begin="-3s" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1"/><circle r="1.5" fill="#10A37F" opacity="0.9"/></g>
|
||||||
|
<g><animateMotion dur="12s" repeatCount="indefinite" begin="-5s" path="M16.9,4.5 A8,3,-30,0,1,7.1,19.5 A8,3,-30,0,1,16.9,4.5"/><animate attributeName="opacity" dur="12s" repeatCount="indefinite" begin="-5s" values="0.95;0.95;0.3;0.3;0.95" keyTimes="0;0.35;0.5;0.65;1"/><circle r="1.5" fill="#4285F4" opacity="0.9"/></g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<span style="font-size:12px;opacity:0.5;">Purple · 64px</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- D1-V3: Sharp Circuit 锐利电路 -->
|
<!-- D1-V3: Sharp Circuit 锐利电路 -->
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h2>D1-V3: Sharp Circuit</h2>
|
<h2>D1-V3: Sharp Circuit</h2>
|
||||||
|
|||||||
Reference in New Issue
Block a user