惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
B
Blog
博客园_首页
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog RSS Feed
M
MIT News - Artificial intelligence
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
量子位
V
V2EX
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
I
InfoQ
博客园 - 【当耐特】

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
AeroCraft: Less CSS, Faster UI Delivery
John Yaghobi · 2026-04-25 · via DEV Community

AeroCraft is a utility and shortcut CSS engine for teams that want the speed of utility classes with better readability and stronger design consistency.

Instead of repeating 8-12 classes for every button, card, and shell, you compose higher-level shortcuts (and component recipes) from your config, then reuse them everywhere.

Why AeroCraft?

Most teams hit the same pain points with CSS utility workflows:

  • Long class strings are hard to scan in code reviews
  • Repeated patterns drift across pages
  • Design tokens live in one place, but UI classes don’t
  • Migration between projects/frameworks gets noisy

AeroCraft addresses this by generating reusable shortcuts from config, with optional responsive variants and typed design tokens.

Advantages vs Typical Utility-First Setup

1) Shorter, clearer class names

You can collapse repeated utility combinations into one semantic shortcut.

Instead of:

<button class="flex-row-center gap-2 px-5 py-3 rounded-lg font-semibold cursor-pointer w-full transition-fast color-white">
  Buy now
</button>

Enter fullscreen mode Exit fullscreen mode

You can define recipe classes and use:

<button class="button-core button-touch-48 button-primary-rounded">
  Buy now
</button>

Enter fullscreen mode Exit fullscreen mode

2) Config-driven design system

Your styles are generated from a single source of truth:

  • theme for colors, spacing, fonts, radii, shadows
  • customShortcuts for reusable layout/semantic helpers
  • componentRecipes for real component-like classes

3) Framework-agnostic output

AeroCraft emits plain CSS. Use it with React, Vue, Angular, Svelte, or vanilla HTML without runtime lock-in.

4) Responsive-ready utilities

Enable responsive: true and get breakpoint variants from your config breakpoints.

5) Better scaling for teams

Teams get consistent naming and less copy-paste CSS noise in JSX/HTML.

Quick Start

npm i @forgedevstack/aerocraft postcss

Enter fullscreen mode Exit fullscreen mode

postcss.config.js

import { aerocraftPlugin } from '@forgedevstack/aerocraft/postcss';
import config from './aerocraft.config.js';

export default {
  plugins: [aerocraftPlugin(config)],
};

Enter fullscreen mode Exit fullscreen mode

src/styles/aerocraft.css

@aerocraft;

Enter fullscreen mode Exit fullscreen mode

src/main.tsx (or equivalent entry)

import './styles/aerocraft.css';

Enter fullscreen mode Exit fullscreen mode

Real Config Example

import { defineConfig } from '@forgedevstack/aerocraft';

export default defineConfig({
  responsive: true,
  theme: {
    colors: {
      brand: { DEFAULT: '#2563eb', 500: '#3b82f6', 600: '#1d4ed8' },
      accent: '#ff8a3c',
    },
    fontFamily: {
      display: ['Plus Jakarta Sans', 'ui-sans-serif', 'system-ui', 'sans-serif'],
    },
    screens: {
      sm: '640px',
      md: '768px',
      lg: '1024px',
    },
  },
  customShortcuts: {
    'background-brand-gradient': {
      group: 'background',
      css: { 'background-image': 'linear-gradient(90deg,#3b82f6,#6366f1)' },
    },
  },
  componentRecipes: {
    'button-core': {
      display: 'inline-flex',
      'align-items': 'center',
      'justify-content': 'center',
      gap: '0.5rem',
      width: '100%',
      'font-weight': '600',
      cursor: 'pointer',
      transition: 'all 180ms ease',
      border: '0',
    },
    'button-touch-48': {
      'min-height': '48px',
      padding: '0.75rem 1.25rem',
    },
    'button-primary-rounded': {
      color: '#ffffff',
      'border-radius': '0.75rem',
      'background-image': 'linear-gradient(90deg,#3b82f6,#6366f1)',
      border: '0',
    },
  },
});

Enter fullscreen mode Exit fullscreen mode

Usage Patterns

A) Utility composition

<section class="flex-col gap-4 p-4 rounded-xl">
  <h2 class="font-bold">Utility composition</h2>
  <p class="color-brand-500">Readable and fast.</p>
</section>

Enter fullscreen mode Exit fullscreen mode

B) Component-style composition

<button class="button-core button-touch-48 button-primary-rounded">
  Continue
</button>

Enter fullscreen mode Exit fullscreen mode

C) Responsive usage

<div class="flex-col md:flex-row gap-3">
  <aside class="w-full md:w-[280px]">Filters</aside>
  <main class="w-full">Results</main>
</div>

Enter fullscreen mode Exit fullscreen mode

When AeroCraft Fits Best

  • You want utility-class speed without unreadable markup
  • You need a config-driven bridge between design tokens and classes
  • You ship across multiple frameworks and want one CSS strategy
  • You want to define once and reuse patterns (componentRecipes)

Summary

AeroCraft keeps the productivity of utility CSS, but adds structure where teams need it most: naming, reuse, and config-driven consistency.

If your class strings are getting repetitive, AeroCraft gives you a clean path to shorter markup and scalable styling.

Repo: https://github.com/yaghobieh/aerocraft