Lightweight and deadly simple.
Based on the great Skeleton, with only a few kb of css and no dependencies.
Themable and extendable.
Theme components and install packages in any styling language.
Vanilla css only.
Flexible and straight forward vanilla css using latest css features.
The grid
The grid is a 12-column fluid grid with a max width of 960px, that shrinks with the browser/device at smaller sizes. It's using flexbox so cells can take remaining space with the .grow css class. The syntax is simple and it makes coding responsive much easier. Go ahead, resize the browser.
Row or colum display is made using css class and controlling allinment and justified content with css class names.
.no-wrap control the flow and avoid to wrap to new lines when it should normally wrap
Another container that should wrap due to spacing
Vertical alignment
TopAlligned
MiddleAlligned
BottomAlligned
StretchAlligned
Horizontal alignment
LeftAlligned
CenterAlligned
RightAlligned
StretchAlligned
Vertical justifying
TopJustified
MiddleJustified
BottomJustified
BetweenJustified
Horizontal justifying
LeftJustified
CenterJustified
RightJustified
BetweenJustified
<!-- .container is main centered wrapper --> <div class="row no-wrap"> <div class="card"> <div><code>.no-wrap</code> control the flow and avoid to wrap to new lines when it should normally wrap</div> </div> <div class="card">Another container that should wrap due to spacing</div> </div>
Type is all set with ems, so font-sizes and spacial relationships can be responsively sized based on a container font-size. Out of the box, it will inherit font-size from <html>. All measurements are still base 10 though so, an <h1> with 5.0emfont-size just means 50px.
The typography base is Raleway served by Google, set at 15rem (15px) over a 1.6 line height (24px). Other type basics like anchors, strong, emphasis, and underline are all obviously included.
Headings create a family of distinct sizes each with specific letter-spacing, line-height, and spacings.
<p> <!-- Other styled text tags --> <strong>Bolded</strong> <em>Italicized</em> <a>Colored</a> <u>Underlined</u> </p>
Buttons
Buttons come in two basic flavors in Skull. The standard <button> element is plain, whereas the .primary button is vibrant and prominent. Button styles are applied to a number of appropriate form elements, but can also be arbitrarily attached to anchors with a .button class.
Forms are a huge pain, but hopefully these styles make it a bit easier. All inputs, select, and buttons are normalized for a common height cross-browser so inputs can be stacked or placed alongside each other.
<form> <div class="row"> <div class="spacing cell-6"> <label for="email">Your email</label> <input id="email" type="email" required="" placeholder="test@mailbox.com"> </div> <div class="spacing cell-6"> <label for="reason">Reason for contacting</label> <select id="reason"> <option value="Option 1">Questions</option> <option value="Option 2">Admiration</option> <option value="Option 3">Can I get your number?</option> </select> </div> </div> <div class="spacing"> <label for="message">Message</label> <textarea id="message" placeholder="Hi Dave 👋"></textarea> </div> <label class="spacing"> <!-- Always wrap checkbox and radio inputs in a label --> <input type="checkbox"> Send a copy to yourself </label> <div class="spacing"> <input class="button primary" type="submit" value="Submit"> </div> </form>
Lists
Unordered lists have basic styles
They use the circle list style
Nested lists styled to feel right
Can nest either type of list into the other
Just more list items mama san
Ordered lists also have basic styles
They use the decimal list style
Ordered and unordered can be nested
Can nest either type of list into the other
Last list item just for the fun
<ol> <li>Ordered lists also have basic styles</li> <li> They use the decimal list style <ul> <li>Ordered and unordered can be nested</li> <li>Can nest either type of list into the other</li> </ul> </li> <li>Last list item just for the fun</li> </ol>
Code
Code styling is kept basic – just wrap anything in a <code> and it will appear like this. For blocks of code, wrap a <code> with a <pre>.
.some-class {
background-color: red;
}
<pre><code>.some-class { background-color: red; } </code></pre> <!-- Remember every whitespace and break will be preserved in a <pre>, including indentation in your code -->
Tables
Be sure to use properly formed table markup with <thead> and <tbody> when building a table.
Skull uses media queries to serve its scalable grid, but also has a list of queries for convenience of styling your site across devices. The queries are mobile-first, meaning they target min-width. Mobile-first queries are how Skull's grid is built and is the preferrable method of organizing CSS. It means all styles outside of a query apply to all devices, then larger devices are targeted for enhancement. This prevents small devices from having to parse tons of unused CSS. The sizes for the queries are:
Desktop HD: 1200px
Desktop: 1000px
Tablet: 750px
Phablet: 550px
Mobile: 400px
/* Mobile first queries */
/* Larger than mobile */ @media (min-width: 400px) {}
/* Larger than phablet */ @media (min-width: 550px) {}
/* Larger than tablet */ @media (min-width: 750px) {}
/* Larger than desktop */ @media (min-width: 1000px) {}
/* Larger than Desktop HD */ @media (min-width: 1200px) {}
Utilities
Skull has a number of small utility classes that act as easy-to-use helpers. Sometimes it's better to use a utility class than create a whole new class just to float an element.