用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-css --skill css-fundamentals命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | css-fundamentals |
| description | CSS fundamentals - selectors, specificity, box model, positioning, units |
| sasmp_version | 1.3.0 |
| version | 2.0.0 |
| updated | 2025-12-30 |
| bonded_agent | 01-css-fundamentals |
| bond_type | PRIMARY_BOND |
Master core CSS concepts: selectors, specificity, box model, positioning, and units.
This skill provides atomic, focused guidance on CSS fundamentals with type-safe parameters and comprehensive validation.
| Property | Value |
|---|---|
| Category | Core CSS |
| Complexity | Beginner to Intermediate |
| Dependencies | None |
| Bonded Agent | 01-css-fundamentals |
Skill("css-fundamentals")
parameters:
topic:
type: string
required: true
enum: [selectors, specificity, box-model, positioning, units, display]
description: The CSS fundamental topic to explore
level:
type: string
required: false
default: beginner
enum: [beginner, intermediate, advanced]
description: Depth of explanation
include_examples:
type: boolean
required: false
default: true
description: Include code examples
validation:
- rule: topic_required
message: "Topic parameter is required"
- rule: valid_enum
message:
[attr], [attr=value]:hover, :focus, :nth-child()::before, ::after>, +, ~!important usage and pitfallsbox-sizing: border-box vs content-boxstatic, relative, absolute, fixed, stickyretry_config:
max_attempts: 3
backoff_type: exponential
initial_delay_ms: 1000
max_delay_ms: 10000
retryable_errors:
- TIMEOUT
- RATE_LIMIT
- TEMPORARY_FAILURE
logging:
entry_point: skill_invoked
exit_point: skill_completed
log_parameters: true
log_response_size: true
metrics:
- invocation_count
- success_rate
- avg_response_time
Inline styles → 1,0,0,0
ID selectors → 0,1,0,0
Classes/attrs → 0,0,1,0
Elements → 0,0,0,1
Example: div#header .nav a:hover
0,1,2,2 (ID=1, class+pseudo=2, elements=2)
┌─────────────────────────────────┐
│ MARGIN │
│ ┌─────────────────────────┐ │
│ │ BORDER │ │
│ │ ┌─────────────────┐ │ │
│ │ │ PADDING │ │ │
│ │ │ ┌─────────┐ │ │ │
│ │ │ │ CONTENT │ │ │ │
│ │ │ └─────────┘ │ │ │
│ │ └─────────────────┘ │ │
│ └─────────────────────────┘ │
└─────────────────────────────────┘
| Use Case | Recommended Unit |
|---|---|
| Typography | rem |
| Spacing | rem or em |
| Borders | px |
| Viewport layouts | vh, vw, % |
| Container layouts | % or fr |
/* Efficient: Single class */
.nav-link { }
/* Less efficient: Descendant chain */
nav ul li a { }
/* Prefer attribute selectors */
[data-state="active"] { }
*, *::before, *::after {
box-sizing: border-box;
}
* {
margin: 0;
padding: 0;
}
describe('CSS Fundamentals Skill', () => {
test('validates topic parameter', () => {
expect(() => skill({ topic: 'invalid' }))
.toThrow('Topic must be one of: selectors, specificity...');
});
test('returns selector examples for selectors topic', () => {
const result = skill({ topic: 'selectors', level: 'beginner' });
expect(result).toContain('.class');
expect(result).toContain('#id');
});
test('handles missing optional parameters', () => {
const result = skill({ topic: 'box-model' });
expect(result.level).toBe('beginner');
expect(result.include_examples).toBe(true);
});
});
| Error Code | Cause | Recovery |
|---|---|---|
| INVALID_TOPIC | Unknown topic | Show valid topics list |
| LEVEL_MISMATCH | Level too advanced for topic | Suggest appropriate level |
| PARAM_VALIDATION | Invalid parameter type | Return validation message |