<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: wispcss</title>
    <description>The latest articles on DEV Community by wispcss (@wispcss).</description>
    <link>https://dev.to/wispcss</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3972010%2Fcb78b444-b78e-4e23-8913-9b57a8d65b95.jpg</url>
      <title>DEV Community: wispcss</title>
      <link>https://dev.to/wispcss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wispcss"/>
    <language>en</language>
    <item>
      <title>Built a CSS Framework Around an Idea Most Had Forgotten About</title>
      <dc:creator>wispcss</dc:creator>
      <pubDate>Sun, 07 Jun 2026 04:39:05 +0000</pubDate>
      <link>https://dev.to/wispcss/built-a-css-framework-around-an-idea-most-had-forgotten-about-159o</link>
      <guid>https://dev.to/wispcss/built-a-css-framework-around-an-idea-most-had-forgotten-about-159o</guid>
      <description>&lt;p&gt;CSS has always had a clear purpose: describe how a document looks, not what it contains. Somewhere along the way, frameworks lost sight of that. Utility frameworks traded readable markup for granular control, leaving developers maintaining strings of dozens of single purpose classes on every element. Component frameworks went the other direction, shipping fully formed UI that was fast to start with and slow to make your own. Both approaches made the same mistake. They made decisions that belong to the developer.&lt;/p&gt;

&lt;p&gt;Wisp starts from a different premise. A framework should give you structure, common patterns, and get out of the way. It should be modular enough that you can pull in a single object without inheriting an entire system, and extensible enough that nothing you add feels like you are working around it. Every module in Wisp is independent by design. Nothing assumes anything else is present except a tiny preflight file (1kb).&lt;/p&gt;

&lt;p&gt;Wisp also ships without a settings file. That is not a limitation but a deliberate choice. Sensible defaults mean you can drop it into a project and start immediately without configuring anything. When you are ready to make it your own, every default is exposed as a &lt;strong&gt;CSS custom variables&lt;/strong&gt;. Override what you need, where you need it, using the cascade the way it was always intended to be used. The framework does not need to know about your changes. That is the point.&lt;/p&gt;

&lt;p&gt;Configure without needing to rebuild it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Preflight.css&lt;/strong&gt;&lt;br&gt;
Defines the order of these layers, box-sizing, and focus styles. There is nothing in here too opinionated.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Foundation.css&lt;/strong&gt;&lt;br&gt;
Defines a consistent vertical rhythm between elements and typography. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objects&lt;/strong&gt;&lt;br&gt;
Layout primitives with no visual style, such as: containers, grid, media. These are your building blocks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behaviors&lt;/strong&gt;&lt;br&gt;
Unique to Wisp. Instead of mixing interaction patterns into components, behaviors are their own classes. &lt;/p&gt;

&lt;p&gt;For Example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;b-press&lt;/code&gt;&lt;br&gt;
Give elements additional click affordance through elevation. For example, a card.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;b-tint&lt;/code&gt;&lt;br&gt;
Gives elements additional click affordance through color tinting. For example, a tab.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;b-transition&lt;/code&gt;&lt;br&gt;
Gives elements animation capabilities in a safe manner&lt;/p&gt;

&lt;p&gt;Etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components&lt;/strong&gt;&lt;br&gt;
UI components with configurable visual styles, such as buttons and tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Utilities&lt;/strong&gt;&lt;br&gt;
The basics. It is not Tailwind. :)&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Looks
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Buttons&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Flat and raised buttons.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;button class="c-button"&amp;gt; 
    Normal
&amp;lt;/button&amp;gt;
&amp;lt;button class="c-button b-press"&amp;gt; 
    Raised
&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Tabs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An inline layout with padded links and a tint behavior: tabs.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="o-cluster"&amp;gt;
    &amp;lt;a class="o-link-block b-tint" href="#"&amp;gt;Tab 1&amp;lt;/a&amp;gt;
    &amp;lt;a class="o-link-block b-tint" href="#"&amp;gt;Tab 2&amp;lt;/a&amp;gt;
    &amp;lt;a class="o-link-block b-tint" href="#"&amp;gt;Tab 3&amp;lt;/a&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Sticky Header Bar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A sticky header bar with inline links.&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="c-box b-sticky u-color-primary"&amp;gt;&lt;br&gt;
    &amp;lt;div class="o-cluster"&amp;gt;&lt;br&gt;
        &amp;lt;a class="o-link-inline" href="#"&amp;gt;Tab 1&amp;lt;/a&amp;gt;&lt;br&gt;
        &amp;lt;a class="o-link-inline" href="#"&amp;gt;Tab 2&amp;lt;/a&amp;gt;&lt;br&gt;
        &amp;lt;a class="o-link-inline" href="#"&amp;gt;Tab 3&amp;lt;/a&amp;gt;&lt;br&gt;
    &amp;lt;/div&amp;gt;&lt;br&gt;
&amp;lt;/div&amp;gt;&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Find it Here&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Let me know what you think.&lt;/p&gt;

&lt;p&gt;&lt;a href="//github.com/wispcode/wisp-css"&gt;github.com/wispcode/wisp-css&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>frontend</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
