Safely append CSS styles from one file to another by identifying missing rules, adapting CSS variables, and verifying changes
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-safe-css-append-b40d2f3df485 ,按照其中的说明把「safe-css-append」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
This skill provides a systematic approach for safely appending CSS styles from a source file to a destination file. The workflow ensures no content is overwritten, CSS variables are properly adapted, and all changes are verified.
First, examine the source CSS file to identify the selectors and rules you want to transfer:
# Read the source CSS file
cat /path/to/source/styles.css
# Identify specific selectors if needed
grep "selector-pattern" /path/to/source/styles.css
Document:
.panel-tab, .header-nav)--primary-color, --spacing-unit)Examine the destination file to understand existing rules and avoid duplication:
# Read the destination CSS file
cat /path/to/destination/styles.css
# Check if specific selectors already exist
grep "selector-name" /path/to/destination/styles.css
# Check for existing CSS variables
grep "^[[:space:]]*--" /path/to/destination/styles.css | head -20
Identify:
Compare source and destination to determine:
Example variable mapping:
Source: --panel-bg → Destination: --background-secondary
Source: --text-primary → Destination: --color-text-primary
Source: --border-radius → Keep as-is (if already defined in destination)
Create the CSS content to append, adapting variables as needed:
/* Example adapted CSS */
.new-selector {
background-color: var(--background-secondary); /* was --panel-bg */
color: var(--color-text-primary); /* was --text-primary */
border-radius: var(--border-radius); /* unchanged */
padding: 8px 16px;
}
.existing-selector {
/* Only add missing properties, not the entire rule */
new-property: value;
}
Use append operations (never overwrite) to add the new styles:
# Append new CSS rules
cat >> /path/to/destination/styles.css << 'EOF'
/* Added styles from source project */
.selector-name {
property: value;
variable-property: var(--adapted-variable);
}
EOF
Best practices:
>> (append) never > (overwrite)Confirm that the styles were added correctly:
# View the last N lines to see appended content
tail -n 20 /path/to/destination/styles.css
# Verify specific selectors were added
grep "new-selector-name" /path/to/destination/styles.css
# Check the complete file if needed
cat /path/to/destination/styles.css | tail -n 50
Here's a full example workflow:
# 1. Read source CSS and identify target
cat project-a/components.css | grep -A 10 ".button-primary"
# 2. Check destination for conflicts
grep ".button-primary" project-b/main.css
grep "^[[:space:]]*--btn-" project-b/main.css
# 3. Identify that .button-primary is missing, and variables need mapping:
# --btn-color → --primary-color (exists in destination)
# --btn-padding → create inline value
# 4. Append adapted styles
cat >> project-b/main.css << 'EOF'
/* Button styles from project-a */
.button-primary {
background-color: var(--primary-color);
padding: 10px 20px;
border-radius: 4px;
font-weight: 600;
}
EOF
# 5. Verify
tail -n 10 project-b/main.css
grep ".button-primary" project-b/main.css
>>, never >wc -l before and after to confirm lines were added