Skip to content
Back to skills

Css Fundamentals

ASecurity

CSS fundamentals - selectors, specificity, box model, positioning, units

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 8, 2026
devopsjavascriptgojava

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill css-fundamentals --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Css Fundamentals?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Css Fundamentals
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-css-fundamentals/badge)](https://www.skillsdirectory.com/skills/majiayu000-css-fundamentals)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
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
---

# CSS Fundamentals Skill

Master core CSS concepts: selectors, specificity, box model, positioning, and units.

## Overview

This skill provides atomic, focused guidance on CSS fundamentals with type-safe parameters and comprehensive validation.

## Skill Metadata

| Property | Value |
|----------|-------|
| **Category** | Core CSS |
| **Complexity** | Beginner to Intermediate |
| **Dependencies** | None |
| **Bonded Agent** | 01-css-fundamentals |

## Usage

```
Skill("css-fundamentals")
```

## Parameter Schema

```yaml
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: "Topic must be one of: selectors, specificity, box-model, positioning, units, display"
```

## Topics Covered

### Selectors
- Element, class, ID selectors
- Attribute selectors `[attr]`, `[attr=value]`
- Pseudo-classes `:hover`, `:focus`, `:nth-child()`
- Pseudo-elements `::before`, `::after`
- Combinator selectors `>`, `+`, `~`

### Specificity
- Specificity calculation (0,0,0,0)
- Cascade order rules
- `!important` usage and pitfalls
- Inheritance patterns

### Box Model
- Content, padding, border, margin
- `box-sizing: border-box` vs `content-box`
- Margin collapse behavior
- Inline vs block dimensions

### Positioning
- `static`, `relative`, `absolute`, `fixed`, `sticky`
- Stacking context and z-index
- Containing block rules
- Offset properties (top, right, bottom, left)

### Units
- Absolute: px, pt, cm
- Relative: em, rem, %, vh, vw
- Newer units: ch, lh, cqi, cqw
- When to use which unit

## Retry Logic

```yaml
retry_config:
  max_attempts: 3
  backoff_type: exponential
  initial_delay_ms: 1000
  max_delay_ms: 10000
  retryable_errors:
    - TIMEOUT
    - RATE_LIMIT
    - TEMPORARY_FAILURE
```

## Logging & Observability

```yaml
logging:
  entry_point: skill_invoked
  exit_point: skill_completed
  log_parameters: true
  log_response_size: true
  metrics:
    - invocation_count
    - success_rate
    - avg_response_time
```

## Quick Reference

### Specificity Calculator

```
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)
```

### Box Model Visual

```
┌─────────────────────────────────┐
│           MARGIN                │
│   ┌─────────────────────────┐   │
│   │        BORDER           │   │
│   │   ┌─────────────────┐   │   │
│   │   │    PADDING      │   │   │
│   │   │   ┌─────────┐   │   │   │
│   │   │   │ CONTENT │   │   │   │
│   │   │   └─────────┘   │   │   │
│   │   └─────────────────┘   │   │
│   └─────────────────────────┘   │
└─────────────────────────────────┘
```

### Unit Recommendations

| Use Case | Recommended Unit |
|----------|------------------|
| Typography | rem |
| Spacing | rem or em |
| Borders | px |
| Viewport layouts | vh, vw, % |
| Container layouts | % or fr |

## Code Examples

### Selector Efficiency

```css
/* Efficient: Single class */
.nav-link { }

/* Less efficient: Descendant chain */
nav ul li a { }

/* Prefer attribute selectors */
[data-state="active"] { }
```

### Box Model Reset

```css
*, *::before, *::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
}
```

## Test Template

```javascript
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 Handling

| 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 |

## Related Skills

- css-flexbox-grid (layout builds on fundamentals)
- css-architecture (naming builds on selectors)
- css-modern (extends selector knowledge)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.