Getting started
To get started, download the latest from Github and link to the code in the <head> tag of your markup like this:
<link rel="stylesheet" href="no_class.css">
Alternatively, you can get started right away by linking to the latest file here:
https://cdn.jsdelivr.net/gh/madebysnacks/No_Class@master/no_class.css
Introduction
Semantic HTML markup provides dozens of usable targets to start and maintain your projects. This blank slate perspective enables more creativity and opportunities for expression. No_Class uses this foundation to provide the best, leanest, and most efficient stylesheet that can help kickstart any web based idea. It is designed to look great on all screen sizes and devices, and it is set up for rapid prototyping and scalability.
The elements found on this demo page represent most of the items that can be overridden to meet your needs and design preferences. Some modern additions to No_Class are not editable, though. There are additional samples of each element here on this Codepen Collection .
Modern features of No_Class include:
Dynamic font sizes 1
CSS variables
Theme switching
Reduced motion preferences
Media queries (including for printers)
CSS accent colors 2
Antialiased font smoothing
This demo page builds on the out-of-the-box nav element to enhance its look and method of interaction at different breakpoints. It also uses an automatically-generated Table of Contents 3 and "The Yellow Flash" 4 because why not.
Standalone Type Styles
Dev Guidelines ›
Close
Standalone Typography
The standard set of HTML type styles are supported in No_Class. Additionally, the small tag is designed as well to add to the traditional H1 through H6 options.
Sample code:
<h1>Headline lorem ipsum</h1>
The H1 through H6 styles are sized relative to the REM base value (16px) and adapt at the three traditional breakpoints. All of these values can be updated to fit your needs. Out of the box, these will all share a standard margin-top value and use the same typeface.
H1. Headline Level 1
P. Body
H2. Headline Level 2
P. Body
H3. Headline Level 3
P. Body
H4. Headline Level 4
P. Body
H5. Headline Level 5
P. Body
H6. Headline Level 6
P. Body
Small. For, like... notes
Example Type Lockups
Dev Guidelines ›
Close
Type Lockups
Different typography lockups can be produced by wrapping a collection of typography markup tags in an aside tag.
Sample code:
<aside>
<h6>Labore harum molestias</h6>
<h1>Amet consecte sit</h1>
<p>Adipisicing labore amet exercitationem</p>
</aside>
Typography markup tags within the aside element do not have the default margin applied to standalone typography tags. This allows for type to sit closer together and present the expected lockup spacing. This can be customized for your desired styling.
Type lockups have the text-wrap setting of balance set on the aside level. This setting evens-out the number of characters in each line for improved readability.
Spacing
Dev Guidelines ›
Close
Spacing
Spacing in No_Class is systematically sized relative to the base font size using the REM unit. These values are provided as CSS Variables.
Sample code:
.section {
margin: var(--space-md) 0 0;
}
No_Class uses the very common 16px base as the scale. There are five levels of spacing that adapt at the prescribed breakpoints. To use the default set, refer to the variable names set at the beginning of the stylesheet at the root level.
A common, intentional spacing foundation can often elevate a good design system to a great design system. The fluid spacing scale is as follows:
CSS Var
SM
MD
LG
space-xs
14px
14px
14px
space-sm
20px
24px
32px
space-md
40px
48px
56px
space-lg
48px
56px
64px
space-xl
80px
80px
80px
space-xl (LG, MD, SM: 80px)
space-lg (LG: 64px, MD: 56px, SM: 48px)
space-md (LG: 56px, MD: 48px, SM: 40px)
space-sm (LG: 32px, MD: 24px, SM: 20px)
space-xs (LG, MD, SM: 14px)
Common, Inline Type Styles
a It is super common to reference a link when writing.
abbr It is human nature, not alien nature .
b I’ll do it—but only for the attention !
cite What can you do? Medicine is not a science. 5
em Cranking Metallica. Is that some sort of drug reference ? It's not funny.
dfn Adipisicing harum : Babbette ate oatmeal.
del Sometimes you need to cut out little things when you write.
ins Sometimes you need to correct little things when you write.
kbd Hold down the cmd and F keys to find some text.
mark Oy with the poodles already!
q The boy says, there's a monkey on the branch .
s Definitive, not derivative . Faux poes foes.
samp SnacksOS console: Your refrigerator likes your mailbox's status update.
small Shine a bright light into the body to kill the Covid.
strong No one really knows how this is different from b so add some color.
sub I'm a star! I'm on top! Somebody bring me some ham!
sup Just took Mom a whole five minutes before [she self-combusted and] left the room in tears.
time The demon woke me up at 3:00 AM .
u One day it occurred to me cows never wrinkle .
Dev Guidelines ›
Lists
Dev Guidelines ›
Close
Lists
No funny business here. Lists are pretty traditional in No_Class. As they should be.
Sample code:
<ul>
<li>Neptune</li>
<li>Jupiter</li>
<li>Saturn</li>
</ul>
The unordered and ordered list elements render as typical bulleted list items and sequentially numbered items. No_Class supports three sub-levels of list items for each OL and UL. While there isn't much done here, No_Class does something special with the menu element, which is just like the other two more popular list elements.
Unordered:
Neptune
Jupiter
Ganymede
Callisto
"The Callistan Menace”
“Farmer in the Sky”
“The Mold of Yancy”
Io
Europa
Ordered:
Aleksey Miranchuk
Simone Mazzocchi
El Bilal Touré
Gianluca Scamacca
Marten de Roon
Éderson
Charles De Ketelaere
Nicolo Zaniolo
Ademola Lookman
Dev Guidelines ›
Liz Lemon
Jack Donaghy
Tracy Jordan
Jenna Maroney
Kenneth Parcell
Dennis Duffy
Toofer Spurlock
Devon Banks
Josh Girard
Dev Guidelines ›
Close
Form
There are a lot of elements within the form element family. Many are accounted for here and this will likely be updated frequently.
Sample code:
<form>
<input type='text'>Your Name</input>
<input type='email'>YourName@website.com</input>
<input type='submit'>Submit</input>
</form>
Different, special, unique updates to the HTML form elements mean that users can benefit from native functionality that improve common input patterns like dates, email addresses, simple integers, and many more. Moreover, simple HTML5 considerations allow you to set a variety of conditions to different fields to create rudimentary, but very efficient methods to ensure real, valid inputs from human beings. All to say, you will still require a certain level of PHP knowledge or be pretty good with your WordPress form plugin to take advantage of all of these modern benefits.
Table
Dev Guidelines ›
Close
Table
Consider this mostly as a reminder that the tfoot element exists.
Sample code:
<table>
<thead>
<tr>
<th>Planets</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mars</td>
<td>Venus</td>
</tr>
</tbody>
</table>
There is not much to write home about this in No_Class apart from the alternate row background colors. This objectively improves readability. There's also a hover state applied. That can be removed or customized to your liking.
The most impactful consideration for tables in No_Class is the x-overflow at small breakpoints. Tables are a common culprit for unintentional horizontal scrolling on web pages—in this the Holy Lord's year of 2024. That won't happen here out of the box.
Table caption
Ep. No.
Ep. Title
Air Date
Director
1
The Demon of Death
June 12, 2022
Robert King
2
The Demon of Memes
June 19, 2022
John Dahl
3
The Demon of Sex
June 26, 2022
Nelson McCormick
4
The Demon of the Road
July 3, 2022
Peter Sollett
tfoot: See full list of episodes in Season 3 of Evil ›
Progress
Dev Guidelines ›
Close
Progress
This is a very specific element that can be useful for the right application. It could be customized to be really effective.
Sample code:
<label for="prog">Current progress:</label>
<progress id="prog" value="28" max="100"></progress>
Pairing it with a label element and a trailing, related element can work well and prove very effective.
Downloading update:
68%
Dialog (Modal)
Dev Guidelines ›
Close
Dialog
There are many names for dialog . In some cultures, it goes by modal. In others—popup.
Sample code:
<dialog>
<button id="exit">Close</button>
<h4>Dialog Title</h4>
<p>Body text lorem ipsum dolor sit amet.</p>
</dialog>
It remains to be seen why new names were introduced, but dialog is still supported, native, and it's just there. With a little bit of CSS, modern effects can be achieved and customized to express a lot of creativity with the reveal and hiding animations.
Open Now
Close
Modal was once Dialog
And it still is, you rotten scoundrels. Get off my lawn.
One nice thing is that you can use the esc key to close this... Dialog.
Blockquote
Dev Guidelines ›
Close
Blockquote
Another example of an overlooked element that can fit in for a common UI element—the card.
Sample code:
<blockquote>
<span>Gravel is big dirt.</span>
<small>Dr. Harry Vanderspeigle</small>
</blockquote>
Or container or widget or callout or tile. It's another one of those things that goes by many names. Adapting the blockquote element for this purpose of punctuating the monotony opens a lot of doors. There are no definite rules about what you can't put in blockquote . Why not images? Type Lockups? Links? All of it.
Patience, Colorado
Gravel is big dirt.
Dr. Harry Vanderspeigle
Details (Accordion)
Dev Guidelines ›
Close
Details
The details element and its sister element, summary , represent an excellent, native solution to a popular UI component—the accordion.
Sample code:
<details>
<summary>Read more</summary>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
</details>
<details>
<summary>Read more</summary>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
</details>
Accordions are one of the most reproduced components in different frameworks. It's unclear why a lot of people choose to reinvent this piece when with limited CSS, it is possible to attain a lot of the characteristics that make the New Coke alternatives so 'unique'.
Read more
This guy's risking everything. His job, his reputation... -Yes, well, he'll always have Paris.
Read more
You know what people told me when I said you were coming here to live with me? They told me I was crazy, they told me I was insane, they told me to start writing letters to Jodie Foster.
Read more
FRANCIE: You do not wanna be my enemy, Marlo Thomas. RORY: I think I do, Tina Louise.
Address
Dev Guidelines ›
Close
Address
The element address is meant for contact information. It can include more than a physical address.
Sample code:
<address>
<b>Camp Nou</b>
<p>C. d'Aristides Maillol 12<br>
08028 Barcelona<br>
Spain</p>
</address>
It can be used in many different ways and contexts. The semantic nature of the tag is helpful for SEO and your own readability when writing markup.
Camp Nou
C. d'Aristides Maillol 12
08028 Barcelona
Spain
DL, DD, DT
Dev Guidelines ›
Close
DL, DD, DT
Description Lists elements, and its children DD and DT elements, are useful semantic tags to present Terms and corresponding Definitions.
Sample code:
<dl>
<dt>Gluten Free</dt>
<dd>Yes</dd>
</dl>
It may be easier to think of these more simply as two-column tables. No_Class styles this family of elements in such a way with minimal border-bottoms. This can of course be restyled to suit your needs, but the pattern of this markup should follow 'this-for-that'.
RAM
16 GB
Screen Size
5.84 in.
Lock Status
Unlocked
Network
GSM / LTE
Gluten Free
Yes
Nav
Dev Guidelines ›
Close
Nav
Nav is an element dedicated for a list of links. This can serve as a simple list of internal navigation links, a table of contents, or index of references.
Sample code:
<nav>
<a href="#about">About</a>
<a href="#services">Services</a>
<a href="#contact">Contact</a>
</nav>
While there are no firm guidelines on how to organize content within a nav element, common practices include listing out simple anchor link tags or adding list item elements within an unordered list within the nav element. While there is no absolute right way to go about it, No_Class supports the former method of simply placing a elements within the nav element.
Hansel
Gretel
Witch
Breadcrumb
References