# Core

The core module contains basic reset and fix rules, based on Normalize.css v5.0.0, along with lots of custom typography rules. Most textual HTML5 elements are styled by this module, so you can start writing your pages immediately without worrying about font families, weights, sizes, line heights, paddings and the like.

All examples showcased refer to the mini-default flavor, some class names and styles might differ based on the flavor you're using.

## Quick overview

Before applying any typography and styling rules, some resets need to be applied to make sure that different elements display consistently on all browsers. The core module utilizes the ruleset of Normalize.css v5.0.0 to apply those much needed resets and fixes. However, to keep the framework small, we removed some rules that only help with legacy browser support and also tweaked a lot of the rules around to use customizable variables so no duplicate rules are applied, taking up unnecessary space. The typography rules in core deal with a page's basics, like fonts and styling of headings and paragraphs, horizontal rules, colors, margins, padding etc.

## Quick start

To use the core module, simply include the link to the flavor you are using and start writing your HTML page as usual. One suggestion we will make is to add the following line inside your HTML page's `<head>` to utilize the viewport meta tag:

    <meta name="viewport" content="width=device-width, initial-scale=1">

Intro to mini.css by Per Harald Borgen

## Typography

For the basic typography rules we did the following, along with other things presented below:

- We use a native font stack to figure out the best font for your device.
- We set the colors to `background: #f8f8f8;` and `color: #212121;`.
- We use a `font-size` of `16px` for the root element.
- We set `line-height` to `1.5`.

### Notes

- Fluid typography is also included, but not enabled by default. If you want to try it out, check out the out the customization page.

## Headings

# Heading 1Subheading

## Heading 2Subheading

### Heading 3Subheading

#### Heading 4Subheading

##### Heading 5Subheading

###### Heading 6Subheading

All six of the HTML headings (`<h1>` - `<h6>`) are styled with simple rules, providing a clean base for your pages' headings. Apart from the headings themselves, complementary rules are provided for `<small>` elements inside headings, allowing you to define subheadings or explanatory text for those headings. These subheadings are stylized to display below the headings in smaller, lighter type.

### Sample code

    <h1>Heading 1<small>Subheading</small></h1>
    <h2>Heading 2<small>Subheading</small></h2>
    <h3>Heading 3<small>Subheading</small></h3>
    <h4>Heading 4<small>Subheading</small></h4>
    <h5>Heading 5<small>Subheading</small></h5>
    <h6>Heading 6<small>Subheading</small></h6>

## Common textual elements

This is a paragraph with some sample text. Did you know mini.css v2 is codenamed Fermion? No? Well, now you do! Oh, by the way, that was some Bold text and here is some text in Italics. Maybe you want to know what our inline elements look like. For example a link to the Github repository of mini.css looks like that! Neat, right? Maybe you want to see some `inline code` or some sample `input`. Oh, also small text is cool, along with its siblings: the subscripthi! and the superscripthello!. Finally, check out the horizontal rule, preformatted code block and quotation below.

    function sum(num1, num2) {
        var num3 = num1 + num2;
        console.log('Result: ' + num3);
    }

> This is some quoted text from elsewhere.

The most common HTML5 elements must be things like `<p>`aragraphs, bold (`<strong>`) & italics (`<em>`) text, links (`<a>`), horizontal rules (`<hr>`) and `<small>` text. These, along with a few others, are styled by default using clean, modern design to make your pages look cool and stand out from the rest of the internet.

### Sample code

    <p>This is a paragraph with some <strong>bold text</strong> and some <em>italics text</em>.</p>
    <a href="#">This is a link.</a>
    <small>This is some small text.</small>
    <sub>Subscript</sub>
    <sup>Superscript</sup>
    <code>Inline code</code>
    <kbd>Keyboard Input</kbd>
    <hr>
    <pre>This is some preformatted text.</pre>
    <blockquote cite="www.quotation.source">
      This is some quoted text from another website or person.
    </blockquote>

## Lists

- Apple
- Orange
- Strawberry

1. Wake up
2. Eat breakfast
3. Go to work

Lists are also very commonly used in websites and apps. We tweaked a few margins and paddings to save some space and make them align properly with the rest of the common HTML elements that we use, but both unordered lists (`<ul>`) and ordered lists (`<ol>`) are minimally pre-styled to make things a little bit easier for you.

### Sample code

    <ul>
      <li>Apple</li>
      <li>Orange</li>
      <li>Strawberry</li>
    </ul>

    <ol>
      <li>Wake up</li>
      <li>Eat breakfast</li>
      <li>Go to work</li>
    </ol>

## Image responsiveness & captions

Image caption

Image elements (`<img>`) are responsive by default, without the need for any special classes or anything else. We made sure they will scale down as necessary to display properly on smaller devices, while keeping their original aspect ratio, but they will never scale up above their original size.

On a side note, if you want to add captions to images, you can use a `<figcaption>` element, while wrapping both the image and it inside a `<figure>`.

### Sample code

    <figure>
      <img src="...">
      <figcaption>Image caption</figcaption>
    </figure>

If you want to learn more about mini.css's modules, go back to the modules page and choose another module to see its documentation.