Migrate Container Queries
getsentry/sentry
Guide for migrating viewport media queries (@media, useMedia, and screen:-prefixed responsive props) to container queries in Sentry's frontend.
Specialized knowledge for writing modern high-quality CSS. An agent skill from pass-agent/loomkin.
$ npx skills add pass-agent/loomkin --skill modern-css -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pass-agent/loomkin modern-css --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pass-agent/loomkin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/modern-css .claude/skills/modern-css && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "modern-css" agent skill from https://github.com/pass-agent/loomkin/tree/main/.agents/skills/modern-css into .claude/skills/modern-css/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modern-css", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pass-agent/loomkin/tree/main/.agents/skills/modern-cssType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pass-agent/loomkin --skill modern-css -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pass-agent/loomkin modern-css --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pass-agent/loomkin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/modern-css .agents/skills/modern-css && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "modern-css" agent skill from https://github.com/pass-agent/loomkin/tree/main/.agents/skills/modern-css into .agents/skills/modern-css/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modern-css", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pass-agent/loomkin --skill modern-css -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pass-agent/loomkin modern-css --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pass-agent/loomkin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/modern-css .cursor/skills/modern-css && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "modern-css" agent skill from https://github.com/pass-agent/loomkin/tree/main/.agents/skills/modern-css into .cursor/skills/modern-css/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modern-css", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pass-agent/loomkin.git --path .agents/skills/modern-css--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pass-agent/loomkin --skill modern-css -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pass-agent/loomkin modern-css --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pass-agent/loomkin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/modern-css .gemini/skills/modern-css && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "modern-css" agent skill from https://github.com/pass-agent/loomkin/tree/main/.agents/skills/modern-css into .gemini/skills/modern-css/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modern-css", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pass-agent/loomkin modern-cssInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pass-agent/loomkin --skill modern-css -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pass-agent/loomkin.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/modern-css .github/skills/modern-css && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "modern-css" agent skill from https://github.com/pass-agent/loomkin/tree/main/.agents/skills/modern-css into .github/skills/modern-css/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modern-css", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pass-agent/loomkin --skill modern-css -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pass-agent/loomkin modern-css --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pass-agent/loomkin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/modern-css .opencode/skills/modern-css && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "modern-css" agent skill from https://github.com/pass-agent/loomkin/tree/main/.agents/skills/modern-css into .opencode/skills/modern-css/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modern-css", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
modern-cssSpecialized knowledge for writing modern high-quality CSS. An agent skill from pass-agent/loomkin.
Modern CSS is an agent skill from pass-agent/loomkin. Specialized knowledge for writing modern high-quality CSS. Trigger this skill when starting a new CSS project/file, when the user asks about new CSS features (e.g. Masonry, View Transitions, Container Queries, Scroll-driven animations), or requests refactoring of legacy styles to modern standards.
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/argyle-cacadia-2025-deck.md`).
It sits in Frontend & Design, covering Refactoring and Responsive design. The repository describes itself as: What if AI agents could form teams as fluidly as humans? Spawn specialists in milliseconds, share discoveries in real-time, review each other's work, and remember everything… The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f769ae7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are css and html).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
web-platform-dx.github.iocaniuse.comchrome.devfrontendmasters.comcascadiajs-2025.netlify.appchriscoyier.netFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Modern CSS loads about 3.8k tokens when it runs, and up to ~8.5k if it reads all its reference files. Until then it costs about 77 tokens; SKILL.md has 520 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pass-agent/loomkin at commit f769ae7, republished under its MIT licence (© pass-agent). 520 words, ~3,842 tokens.
.claude/skills/modern-css/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This skill provides a reference for writing modern, robust, and efficient CSS.
.card {
container: --my-card / inline-size;
}
@container --my-card (width < 40ch) {
/* Component-based responsive design */
}
@container (20ch < width < 50ch) {
/* Range syntax */
}Container units: cqi, cqb, cqw, cqh - size relative to container dimensions
Anchored container queries: Style positioned elements based on anchor fallback state
.tooltip {
container-type: anchored;
}
@container anchored(top) {
/* Styles when positioned at top */
}@media (width <= 1024px) { }
@media (360px < width < 1024px) { }display: grid-lanes for Pinterest-style layouts with logical tab order. (Previously proposed as grid-template-rows: masonry).:root {
color-scheme: light dark;
--surface-1: light-dark(white, #222);
--text-1: light-dark(#222, #fff);
}/* OKLCH: uniform brightness, P3+ colors */
.vibrant {
background: oklch(72% 75% 330);
}
/* Display-P3 for HDR displays */
@media (dynamic-range: high) {
.neon {
--neon-red: color(display-p3 1 0 0);
}
}
/* Better gradients with in oklch */
.gradient {
background: linear-gradient(
to right in oklch,
color(display-p3 1 0 .5),
color(display-p3 0 1 1)
);
}/* color-mix() */
.lighten {
background: color-mix(in oklab, var(--brand), white);
}
/* Relative color syntax */
.lighter {
background: oklch(from blue calc(l + .25) c h);
background: oklch(from blue 75% c h); /* Set to specific lightness */
}
.semi-transparent {
background: oklch(from var(--color) l c h / 50%);
}
.complementary {
background: hsl(from blue calc(h + 180) s l);
}:root {
accent-color: hotpink; /* Tints checkboxes, radios, range inputs */
}h1 {
text-wrap: balance; /* Balanced multi-line headings */
max-inline-size: 25ch;
}
p {
text-wrap: pretty; /* No orphans */
max-inline-size: 50ch;
}h1, p, button {
text-box: trim-both cap alphabetic; /* Optical vertical centering */
}.heading {
font-size: clamp(1rem, 1rem + 0.5vw, 2rem); /* Respects user preferences */
}dvh / dvw - Dynamic (accounts for mobile browser UI)svh / svw - Small (smallest possible viewport)lvh / lvw - Large (largest possible viewport)/* Animate on scroll position */
.parallax {
animation: slide-up linear both;
animation-timeline: scroll();
}
/* Animate on viewport intersection */
.fade-in {
animation: fade linear both;
animation-timeline: view();
animation-range: cover -75cqi contain 20cqi;
}Status: Baseline Newly Available (Same-document). Cross-document transitions are in Limited Availability (Chrome/Safari 18.2+).
@view-transition {
navigation: auto; /* Automatically animate page transitions (MPAs) */
}
nav {
view-transition-name: --persist-nav; /* Persist specific elements */
view-transition-class: --site-header; /* Group transitions with classes */
}
/* Style the active transition */
html:active-view-transition {
overflow: hidden;
}Nested View Transition Groups: Preserve 3D transforms and clipping during transitions.
.springy {
--spring: linear(
0, 0.14 4%, 0.94 17%, 1.15 24% 30%, 1.02 43%, 0.98 51%, 1 77%, 1
);
transition: transform 1s var(--spring);
}.dialog {
transition: opacity .5s, scale .5s;
@starting-style {
opacity: 0;
scale: 1.1;
}
}Type-safe, animatable custom properties:
@property --gradient-angle {
syntax: "<angle>";
inherits: false;
initial-value: 0deg;
}
.animate {
transition: --gradient-angle 1s ease;
&:hover {
--gradient-angle: 360deg;
}
}Newly Available: calc-size() allows calculations and transitions on intrinsic sizes (auto, min-content).
/* Finally: Animate to auto height! */
.accordion-content {
height: 0;
overflow: hidden;
transition: height 0.3s ease;
}
.accordion-item.open .accordion-content {
height: calc-size(auto);
}
.radial-layout {
--_angle: calc(var(--sibling-index) * var(--_offset));
translate:
calc(cos(var(--_angle)) * var(--_circle-size))
calc(sin(var(--_angle)) * var(--_circle-size));
}.staggered {
animation-delay: calc(sibling-index() * .1s);
background-color: hsl(sibling-count() 50% 50%);
}.dynamic {
color: if(
style(--theme: dark),
white,
black
);
}@layer reset, design-system, components, utilities;
@import "open-props/colors" layer(design-system);
@import "components/nav/base.css" layer(components.nav);
@layer components.nav.primary {
nav {
position: sticky;
inset-block-start: 0;
}
}Benefits:
<dialog id="modal">
<form method="dialog">
<button value="cancel">Cancel</button>
<button value="confirm">Confirm</button>
</form>
</dialog>
<button commandfor="modal" command="showModal">Open</button>
<button commandfor="modal" command="close">Close</button>New: closedby attribute enables light-dismiss behavior
<button popovertarget="menu">Show Menu</button>
<div popover id="menu">...</div>popover=hint: Ephemeral tooltips that don't dismiss other popovers
[popover] {
transition:
display .5s allow-discrete,
overlay .5s allow-discrete,
opacity .5s;
@starting-style {
&:popover-open {
opacity: 0;
}
}
}.tooltip-anchor {
anchor-name: --tooltip;
}
.tooltip[popover] {
position-anchor: --tooltip;
position-area: block-start;
position-try-fallbacks: flip-block;
position-try-order: most-height;
}Pseudo-elements: anchor(), ::scroll-button(), ::scroll-marker()
<details name="accordion">...</details>
<details name="accordion">...</details>
<!-- Only one can be open at a time -->select {
appearance: base-select; /* Full CSS control */
}
/* Style options with rich HTML */
select option::before {
content: ""; /* Can include images, icons */
}<search>
<form>
<input type="search" name="q">
<button type="submit">Search</button>
</form>
</search>textarea, select, input {
field-sizing: content; /* Auto-grow to content */
}
textarea {
min-block-size: 3lh; /* Line-height units */
max-block-size: 80dvh;
}/* Wait for user interaction before showing errors */
:user-invalid {
outline-color: red;
}
:user-valid {
outline-color: green;
}
label:has(+ input:user-invalid) {
text-decoration: underline wavy red;
}<select>
<option>Option 1</option>
<hr>
<option>Option 2</option>
</select>.custom-scrollbar {
scrollbar-color: hotpink transparent;
scrollbar-width: thin;
}.complex-clip {
clip-path: shape(
from 0% 0%,
curve by 50% 25% via 25% 50%,
line to 100% 100%
);
}.fancy-corners {
corner-shape: squircle;
corner-shape: notch;
corner-shape: scoop;
corner-shape: superellipse(0.7);
}@supports (animation-timeline: view()) {
.fade-in {
animation: fade linear both;
animation-timeline: view();
}
}
@supports (container-type: inline-size) {
.responsive-card {
container-type: inline-size;
}
}@media (prefers-reduced-motion: no-preference) {
.animated {
animation: slide 1s ease;
}
}
@media (prefers-color-scheme: dark) {
:root {
--surface: #222;
}
}
@media (prefers-contrast: more) {
.text {
font-weight: 600;
}
}What is Baseline? A unified way to understand cross-browser feature availability. Features are marked as:
Remember: Always check Baseline status, use @supports for cutting-edge features, and respect user preferences with media queries. Modern CSS is about progressive enhancement and building resilient interfaces that work for everyone.
Here's a card component using many modern CSS features:
/* Cascade layer for organization */
@layer components.card {
/* Custom properties with @property */
@property --card-hue {
syntax: "<number>";
inherits: false;
initial-value: 200;
}
.card {
/* Container for responsive design */
container: card / inline-size;
/* Logical properties */
inline-size: 100%;
padding-inline: var(--space-md);
padding-block: var(--space-lg);
/* Modern color system */
background: light-dark(
oklch(98% 0.02 var(--card-hue)),
oklch(20% 0.02 var(--card-hue))
);
/* Border with relative color */
border: 1px solid oklch(from var(--surface) calc(l * 0.9) c h);
/* Smooth corners */
border-radius: var(--radius-md);
/* View transition */
view-transition-name: --card;
/* Scroll-driven animation */
animation: fade-in linear both;
animation-timeline: view();
animation-range: entry 0% cover 30%;
/* Anchor for tooltips */
anchor-name: --card-anchor;
/* Transition custom property */
transition: --card-hue 0.5s var(--ease-spring-3);
&:hover {
--card-hue: 280;
}
/* Responsive typography in container */
@container card (width > 30ch) {
.card__title {
font-size: clamp(1.5rem, 3cqi, 2.5rem);
text-wrap: balance;
}
}
@container card (width < 30ch) {
.card__image {
aspect-ratio: 16 / 9;
object-fit: cover;
}
}
}
.card__title {
/* Text box trim for optical alignment */
text-box: trim-both cap alphabetic;
text-wrap: balance;
/* Logical margin */
margin-block-end: var(--space-sm);
}
.card__body {
text-wrap: pretty;
max-inline-size: 65ch;
}
.card__cta {
/* Inherit font */
font: inherit;
/* Accent color */
accent-color: var(--brand);
/* Field sizing */
field-sizing: content;
/* Logical properties */
padding-inline: var(--space-md);
padding-block: var(--space-sm);
/* Modern color with relative syntax */
background: oklch(from var(--brand) l c h);
color: oklch(from var(--brand) 95% 0.05 h);
&:hover {
background: oklch(from var(--brand) calc(l * 1.1) c h);
}
&:user-invalid {
outline: 2px solid light-dark(red, #ff6b6b);
}
}
/* Popover tooltip anchored to card */
.card__tooltip[popover] {
position-anchor: --card-anchor;
position-area: block-start;
position-try-fallbacks: flip-block;
/* Entry animation */
@starting-style {
opacity: 0;
scale: 0.9;
}
transition:
opacity 0.2s,
scale 0.2s,
display 0.2s allow-discrete,
overlay 0.2s allow-discrete;
}
/* Scroll state container queries */
@supports (container-type: scroll-state) {
.card__sticky-header {
container-type: scroll-state;
position: sticky;
inset-block-start: 0;
@container scroll-state(stuck: top) {
box-shadow: 0 2px 8px oklch(0% 0 0 / 0.1);
}
}
}
/* Respect user preferences */
@media (prefers-reduced-motion: reduce) {
.card {
animation: none;
transition: none;
}
}
@media (prefers-contrast: more) {
.card {
border-width: 2px;
}
}
}
/* Keyframes for scroll animation */
@keyframes fade-in {
from {
opacity: 0;
scale: 0.95;
}
to {
opacity: 1;
scale: 1;
}
}<article class="card">
<img
class="card__image"
src="image.jpg"
alt="Description"
loading="lazy"
>
<h2 class="card__title">Card Title</h2>
<p class="card__body">
Card description with pretty text wrapping that avoids orphans.
</p>
<button
class="card__cta"
popovertarget="card-tooltip"
>
Learn More
</button>
<div
class="card__tooltip"
popover="hint"
id="card-tooltip"
>
Additional information appears here
</div>
</article>Prioritize Stability:
@supports. Or ask the user how they want to handle it.Use the web platform:
Code Style:
oklch) for new palettes.© pass-agent, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in .agents/skills/modern-css of pass-agent/loomkin.
Open the folder on GitHubat commit f769ae7
Modern CSS next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Modern CSS this skillpass-agent/loomkin | 181 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Migrate Container Queriesgetsentry/sentry | 45k | — | ~2.4k | Automated safety check: Pass | Custom licence | |
| Common Web Visual TestingHoangNguyen0403/agent-skills-standard | 570 | — | ~760 | Automated safety check: Pass | MIT | |
| Tailwindpproenca/dot-skills | 214 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Tailwind Responsive UIpproenca/dot-skills | 214 | — | ~2.1k | Automated safety check: Pass | MIT | |
| UI StylingOhh-889/skyroc | 795 | 13 repos | ~2.5k | Automated safety check: Pass | MIT |
getsentry/sentry
Guide for migrating viewport media queries (@media, useMedia, and screen:-prefixed responsive props) to container queries in Sentry's frontend.
HoangNguyen0403/agent-skills-standard
Standardizes visual audits, responsive design, and behavioral testing for web apps.
pproenca/dot-skills
Tailwind CSS v4 performance optimization and best practices guidelines (formerly tailwindcss-v4-style).
pproenca/dot-skills
Responsive UI transformation patterns for Tailwind CSS applications.
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
getsentry/sentry
Filter large Sentry Scraps design-system migration PRs for review by separating mechanical import-path changes, generated baseline updates, snapshot mocks, and pure renames from substantive…
pass-agent/loomkin
A skill your agent uses when building terminal user interfaces with React Ink - interactive CLI apps, terminal dashboards, progress displays, or keyboard-driven TUI components.
pass-agent/loomkin
Build and maintain interactive Node.js/Bun CLIs with Clack (@clack/prompts and @clack/core).
pass-agent/loomkin
Expert in Elixir, Phoenix Framework, and OTP. An agent skill from pass-agent/loomkin.
pass-agent/loomkin
This skill should be used when designing terminal user interfaces, creating TUI layouts, choosing TUI color schemes, implementing keyboard navigation, building terminal dashboards, or working with…
pass-agent/loomkin
Audit and clean up knowledge base state — archive completed work, fix inconsistencies
pass-agent/loomkin
Process a meeting transcript — extract decisions, action items, and key discussion points into structured vault entries
Categories
Specialized knowledge for writing modern high-quality CSS. An agent skill from pass-agent/loomkin. Modern CSS is an agent skill from pass-agent/loomkin. Specialized knowledge for writing modern high-quality CSS.
Modern CSS fits situations like: this skill when starting a new CSS project/file; the user asks about new CSS features (e.g.
Run `npx skills add pass-agent/loomkin --skill modern-css -a claude-code`. Or copy the skill folder (.agents/skills/modern-css in pass-agent/loomkin) into .claude/skills/modern-css in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pass-agent/loomkin --skill modern-css -a codex`. Or copy the skill folder (.agents/skills/modern-css in pass-agent/loomkin) into .agents/skills/modern-css in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pass-agent/loomkin --skill modern-css -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/modern-css, .gemini/skills/modern-css, .github/skills/modern-css and .opencode/skills/modern-css in your project.
SKILL.md names no scripts, command-line tools or credentials: Modern CSS is instructions for the agent only.
SKILL.md names 6 domains. As links in the text: web-platform-dx.github.io, caniuse.com, chrome.dev, frontendmasters.com, cascadiajs-2025.netlify.app and chriscoyier.net. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Modern CSS is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Modern CSS: Migrate Container Queries (getsentry/sentry, 45k stars), Common Web Visual Testing (HoangNguyen0403/agent-skills-standard, 570 stars), Tailwind (pproenca/dot-skills, 214 stars) and Tailwind Responsive UI (pproenca/dot-skills, 214 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pass-agent (a GitHub organization) maintains it in pass-agent/loomkin, which has 181 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on May 17, 2026.
Source: pass-agent/loomkin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.