@flyeric0212/languages-css
CSS 和样式规范 globs: *.css, *.scss, *.less, *.styled.ts
prpm install @flyeric0212/languages-css0 total downloads
📄 Full Prompt Content
---
description: CSS 和样式规范
globs: *.css, *.scss, *.less, *.styled.ts
alwaysApply: false
---
# CSS 和样式规范
## 样式架构原则
- **组件化样式**:每个组件的样式应该封装在组件内部
- **样式隔离**:避免全局样式污染,使用CSS-in-JS或CSS Modules
- **主题一致性**:使用设计系统和主题变量保持视觉一致性
- **响应式设计**:优先考虑移动端,采用移动优先的响应式设计
- **性能优化**:避免不必要的样式重绘和重排
## Styled Components 规范
- **组件命名**:使用描述性的组件名,以 `Styled` 开头
```typescript
const StyledCard = styled.div`
padding: 16px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
`;
```
- **主题使用**:通过 `theme` 属性访问主题变量
```typescript
const StyledButton = styled.button`
background-color: ${({ theme }) => theme.colors.primary};
color: ${({ theme }) => theme.colors.white};
`;
```
- **条件样式**:使用 props 进行条件样式设置
```typescript
const StyledButton = styled.button<{ variant: 'primary' | 'secondary' }>`
background-color: ${({ variant, theme }) =>
variant === 'primary' ? theme.colors.primary : theme.colors.secondary
};
`;
```
- **样式继承**:合理使用样式继承减少重复代码
```typescript
const BaseButton = styled.button`
padding: 8px 16px;
border-radius: 4px;
border: none;
`;
const PrimaryButton = styled(BaseButton)`
background-color: ${({ theme }) => theme.colors.primary};
`;
```
## Ant Design 定制规范
- **主题定制**:使用 ConfigProvider 进行全局主题定制
```typescript
const theme = {
token: {
colorPrimary: '#1890ff',
borderRadius: 6,
fontSize: 14,
},
};
```
- **组件样式覆盖**:使用 CSS-in-JS 覆盖 Ant Design 组件样式
```typescript
const StyledTable = styled(Table)`
.ant-table-thead > tr > th {
background-color: #fafafa;
font-weight: 600;
}
`;
```
- **自定义组件**:基于 Ant Design 组件创建自定义组件
```typescript
const CustomCard = styled(Card)`
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
`;
```
## 响应式设计规范
- **断点定义**:使用标准断点进行响应式设计
```typescript
const breakpoints = {
xs: '480px',
sm: '576px',
md: '768px',
lg: '992px',
xl: '1200px',
xxl: '1600px',
};
```
- **媒体查询**:使用 CSS-in-JS 编写媒体查询
```typescript
const ResponsiveContainer = styled.div`
padding: 16px;
@media (min-width: ${({ theme }) => theme.breakpoints.md}) {
padding: 24px;
}
`;
```
- **Flex布局**:优先使用 Flexbox 进行布局
```typescript
const FlexContainer = styled.div`
display: flex;
flex-direction: column;
gap: 16px;
@media (min-width: ${({ theme }) => theme.breakpoints.md}) {
flex-direction: row;
}
`;
```
## 颜色和主题规范
- **颜色系统**:定义完整的颜色系统
```typescript
const colors = {
primary: '#1890ff',
success: '#52c41a',
warning: '#faad14',
error: '#ff4d4f',
text: {
primary: '#262626',
secondary: '#595959',
disabled: '#bfbfbf',
},
background: {
primary: '#ffffff',
secondary: '#fafafa',
disabled: '#f5f5f5',
},
};
```
- **暗色主题**:支持暗色主题切换
```typescript
const darkTheme = {
colors: {
primary: '#1890ff',
background: {
primary: '#141414',
secondary: '#1f1f1f',
},
text: {
primary: '#ffffff',
secondary: '#a6a6a6',
},
},
};
```
## 动画和过渡规范
- **过渡效果**:为交互元素添加适当的过渡效果
```typescript
const AnimatedButton = styled.button`
transition: all 0.3s ease;
&:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
`;
```
- **加载动画**:使用 CSS 动画创建加载效果
```typescript
const LoadingSpinner = styled.div`
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
animation: spin 1s linear infinite;
`;
```
## 布局规范
- **网格系统**:使用 CSS Grid 或 Flexbox 创建网格布局
```typescript
const GridContainer = styled.div`
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 24px;
`;
```
- **间距系统**:使用统一的间距系统
```typescript
const spacing = {
xs: '4px',
sm: '8px',
md: '16px',
lg: '24px',
xl: '32px',
xxl: '48px',
};
```
## 字体和排版规范
- **字体系统**:定义完整的字体系统
```typescript
const typography = {
fontFamily: {
primary: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto',
mono: '"SFMono-Regular", Consolas, "Liberation Mono", Menlo',
},
fontSize: {
xs: '12px',
sm: '14px',
md: '16px',
lg: '18px',
xl: '20px',
xxl: '24px',
},
fontWeight: {
normal: 400,
medium: 500,
semibold: 600,
bold: 700,
},
};
```
- **行高和字间距**:设置合适的行高和字间距
```typescript
const TextComponent = styled.p`
line-height: 1.6;
letter-spacing: 0.02em;
`;
```
## 性能优化规范
- **CSS优化**:避免深层嵌套和复杂选择器
- **重绘重排**:避免频繁的样式变更导致的重绘重排
- **CSS-in-JS优化**:使用 `shouldForwardProp` 避免不必要的 DOM 属性
```typescript
const StyledDiv = styled.div.withConfig({
shouldForwardProp: (prop) => !['customProp'].includes(prop),
})<{ customProp: boolean }>`
color: ${({ customProp }) => customProp ? 'red' : 'blue'};
`;
```
## 可访问性规范
- **对比度**:确保文本和背景有足够的对比度
- **焦点状态**:为可交互元素提供清晰的焦点状态
```typescript
const AccessibleButton = styled.button`
&:focus {
outline: 2px solid ${({ theme }) => theme.colors.primary};
outline-offset: 2px;
}
`;
```
- **语义化**:使用语义化的 HTML 元素和 ARIA 属性
## 代码组织规范
- **文件结构**:样式文件与组件文件放在同一目录
- **样式分离**:将复杂的样式逻辑提取到单独的样式文件
- **主题文件**:将主题相关的配置集中管理
- **工具函数**:创建样式工具函数提高复用性
```typescript
const getSpacing = (size: keyof typeof spacing) => spacing[size];
const getColor = (color: string) => ({ theme }: { theme: any }) => theme.colors[color];
```
═══════════════════════════════════════════════════════════════════
═══ ENGLISH TRANSLATION ═══
═══════════════════════════════════════════════════════════════════
---
description: Languages Css Development Guidelines (Translation)
---
# Languages Css Guidelines - English Translation
**Note**: This package contains Chinese cursor rules for Languages Css.
**Original Language**: Chinese (Simplified)
**Content Summary**: This package provides comprehensive development guidelines, best practices, and coding standards for Languages Css. The rules cover code organization, naming conventions, design patterns, testing strategies, and performance optimization.
**Translation Status**: Automated translation placeholder. For accurate technical translation of specific terms and context, please:
1. Use the original Chinese content above as authoritative reference
2. Refer to official Languages Css documentation in English
3. The technical patterns and code examples remain universal across languages
**How to Use**:
- Code blocks and examples use universal syntax
- Technical terms (APIs, methods, libraries) are typically in English even in Chinese text
- Structure and organization principles translate directly to English development practices
**Content Length**: 5527 characters of detailed technical guidance
For community-contributed English translation, please refer to the source repository.💡 Suggested Test Inputs
Loading suggested inputs...
🎯 Community Test Results
Loading results...
📦 Package Info
- Format
- cursor
- Type
- rule
- Category
- general
- License
- MIT