Getting started

To get started, download the latest from Github and link to the code in the <head> tag of your markup like this:


Alternatively, you can get started right away by linking to the latest file here:

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:


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

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

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

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 .

u One day it occurred to me cows never wrinkle.

Buttons

Buttons

Buttons are simple, clickable elements. No_Class accounts for the different ways you might use buttons, such as the native button tag and submit-labeled input types within forms.

Sample code:
<button>Click me</button>

Simply add your own text within the button element tags. If you want to establish a hierarchy, add a .primary or .secondary class to the singular button style.

Lists

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:

  1. Aleksey Miranchuk
  2. Simone Mazzocchi
    1. El Bilal Touré
      1. Gianluca Scamacca
      2. Marten de Roon
      3. Éderson
    2. Charles De Ketelaere
    3. Nicolo Zaniolo
  3. Ademola Lookman

Menu

The menu element functions just like an ordered or unordered list. Carousels are not a default component available so a little CSS goes a long way here.

Sample code:
<menu>
    <li>Liz Lemon</li>
    <li>Jack Donaghy</li>
    <li>Tracy Jordan</li>
</menu>

This idea is founded in the theory that most people forgot or never knew about the menu element. Because of that, No_Class uses this very forgiving structure that shares so much with ol and ul to render a very common, modern component—the carousel.

There isn't much to this carousel, but the basis allows for easy adaptation for your designs.

  • Liz Lemon

  • Jack Donaghy

  • Tracy Jordan

  • Jenna Maroney

  • Kenneth Parcell

  • Dennis Duffy

  • Toofer Spurlock

  • Devon Banks

  • Josh Girard

  • Form

    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.

    ♣ Fieldset Legend ♥

    Table

    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

    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.

    68%
    Dialog (Modal)

    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

    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

    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)

    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

    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

    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

    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.

    References
    1. Dynamic Type on the Web ›
    2. 12 Modern CSS One Line Upgrades ›
    3. Automacitally generated Table of Contents ›
    4. The Yellow Flash ›
    5. Dr. Leo Spaceman ›