with one click
css-modern
Use modern CSS features - custom properties, container queries, :has(), @layer, CSS nesting
Menu
Use modern CSS features - custom properties, container queries, :has(), @layer, CSS nesting
Writes, edits, and creates dbt models following best practices. Use when user needs to create new dbt SQL models, update existing models, or convert raw SQL to dbt format. Handles staging, intermediate, and mart models with proper config blocks, CTEs, and documentation.
Apply Domain-Driven Design, Clean Architecture, CQRS, and command/query patterns to code reviews and feature design. Use when analyzing or designing code in Application, Service, Infrastructure, DataAccess, Validation, Domain, or Functions projects, or when addressing architectural concerns, layering, mapping, entities, value objects, repositories, or validators in the Rome Repair Order Service.
Analyzes and refactors code using Domain-Driven Design principles. Use when refactoring domain models, identifying DDD anti-patterns, improving domain clarity, or applying tactical/strategic DDD patterns.
Guide for DDD strategic design - analyzing domains through structured questioning, conducting stakeholder interviews (PM/domain experts/users), and producing Bounded Context analysis, Context Maps, and Ubiquitous Language. Use when user needs help understanding domain boundaries, planning domain interviews, or structuring DDD strategic artifacts.
Win competitive rounds: run a clean process, deliver value previews before asking, coordinate partners, and manage timelines. Use when you're trying to close a 'must win' deal against other funds.
End-to-end associate workflow with time-boxed gates: thesis -> sourcing -> meetings -> diligence -> memo, ending with either IC-ready memo or explicit kill decision. Use when you need to run the full pipeline for a sector or a specific deal.
| name | css-modern |
| description | Use modern CSS features - custom properties, container queries, :has(), @layer, CSS nesting |
| sasmp_version | 1.3.0 |
| version | 2.0.0 |
| updated | 2025-12-30 |
| bonded_agent | 07-css-modern-features |
| bond_type | PRIMARY_BOND |
Master cutting-edge CSS features: custom properties, container queries, :has(), @layer, and native CSS nesting.
This skill provides atomic, focused guidance on modern CSS features (2022-2025) with browser compatibility information and fallback strategies.
| Property | Value |
|---|---|
| Category | Modern CSS |
| Complexity | Advanced to Expert |
| Dependencies | css-fundamentals |
| Bonded Agent | 07-css-modern-features |
Skill("css-modern")
parameters:
feature:
type: string
required: true
enum: [custom-properties, container-queries, has-selector, layers, nesting, logical-properties]
description: Modern CSS feature to explore
include_fallback:
type: boolean
required: false
default: true
description: Include browser fallback patterns
browser_support:
type: boolean
required: false
default: true
description: Include compatibility information
validation:
- rule: feature_required
message: "feature parameter is required"
- rule: valid_feature
message: "feature must be one of: custom-properties, container-queries..."
retry_config:
max_attempts: 3
backoff_type: exponential
initial_delay_ms: 1000
max_delay_ms: 10000
logging:
entry_point: skill_invoked
exit_point: skill_completed
metrics:
- invocation_count
- feature_usage
- fallback_requests
/* Definition */
:root {
--color-primary: #3b82f6;
--spacing-md: 1rem;
}
/* Usage */
.button {
background: var(--color-primary);
padding: var(--spacing-md);
}
/* With fallback */
color: var(--text-color, black);
/* With calc() */
margin: calc(var(--spacing-md) * 2);
/* Define container */
.card-wrapper {
container-type: inline-size;
container-name: card;
}
/* Query container */
@container card (min-width: 400px) {
.card {
display: grid;
grid-template-columns: 200px 1fr;
}
}
/* Container units */
.card-title {
font-size: clamp(1rem, 5cqi, 2rem);
}
/* Style parent based on child */
.card:has(.card-image) {
padding-top: 0;
}
/* Form validation styling */
.form:has(:invalid) .submit-btn {
opacity: 0.5;
pointer-events: none;
}
/* Style previous sibling */
.item:has(+ .item:hover) {
transform: translateX(-5px);
}
/* Check for empty state */
.list:not(:has(li)) {
display: none;
}
/* Define layer order */
@layer reset, base, components, utilities;
@layer reset {
*, *::before, *::after {
margin: 0;
box-sizing: border-box;
}
}
@layer components {
.button {
padding: 0.5rem 1rem;
}
}
@layer utilities {
.hidden { display: none !important; }
}
.card {
background: white;
border-radius: 8px;
& .card-header {
padding: 1rem;
border-bottom: 1px solid #eee;
}
&:hover {
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
@media (min-width: 768px) {
display: grid;
grid-template-columns: 1fr 2fr;
}
}
| Feature | Chrome | Firefox | Safari | Edge |
|---|---|---|---|---|
| Custom Properties | 49+ | 31+ | 9.1+ | 15+ |
| Container Queries | 105+ | 110+ | 16+ | 105+ |
| :has() | 105+ | 121+ | 15.4+ | 105+ |
| @layer | 99+ | 97+ | 15.4+ | 99+ |
| CSS Nesting | 120+ | 117+ | 17.2+ | 120+ |
/* Feature detection */
@supports (container-type: inline-size) {
.wrapper {
container-type: inline-size;
}
}
/* Fallback for :has() */
@supports not selector(:has(*)) {
/* JavaScript-based alternative styles */
.card.has-image {
padding-top: 0;
}
}
/* Base experience */
.card {
padding: 1rem;
}
/* Enhanced for modern browsers */
@supports (container-type: inline-size) {
.card-wrapper {
container-type: inline-size;
}
@container (min-width: 400px) {
.card {
display: grid;
}
}
}
describe('CSS Modern Skill', () => {
test('validates feature parameter', () => {
expect(() => skill({ feature: 'invalid' }))
.toThrow('feature must be one of: custom-properties...');
});
test('includes fallback when flag is true', () => {
const result = skill({ feature: 'container-queries', include_fallback: true });
expect(result).toContain('@supports');
});
test('includes browser support when flag is true', () => {
const result = skill({ feature: 'has-selector', browser_support: true });
expect(result).toContain('Chrome');
expect(result).toContain('Safari');
});
});
| Error Code | Cause | Recovery |
|---|---|---|
| INVALID_FEATURE | Unknown feature | Show valid options |
| BROWSER_UNSUPPORTED | Feature not available | Provide @supports fallback |
| PERFORMANCE_WARNING | :has() used broadly | Suggest scope limitation |