npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

convertiv-fjaka

v2.5.0

Published

Fjaka is a SASS based frontend framework for building extensive, scalable, responsive and mobile-first web projects with solid architectural baseline.

Downloads

67

Readme

Fjaka

Fjaka is a SASS-based frontend framework for building extensive, scalable, responsive, mobile-first web projects with a solid architectural baseline.

| Read HTML & CSS Conventions document! | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Before using Fjaka, please read our HTML & CSS Conventions document. That document will guide you through the whole process of frontend development, including structuring, naming conventions, style guides, etc. |

Usage

Via web-starter

Fjaka is already included in the web-starter project we use for every new project.

Via npm

You can use Fjaka in other projects by installing it using the NPM package manager:

npm install fjaka --save

After you install the package in your project, you should be able to import Fjaka source files from /node_modules directory.

Compatibility

Learn about the browsers and devices, from modern to old, that Fjaka supports.

Desktop Browsers

Fjaka supports the latest, stable releases of all major browsers and platforms. We support Internet Explorer 10, 11, and Microsoft Edge on Windows.

Alternative browsers which use the latest version of WebKit, Blink, or Gecko, whether directly or via the platform’s web view API, are not explicitly supported. However, Fjaka should (in most cases) display and function correctly in these browsers.

| | Mac OS | Windows | | ----------------- | --------- | ------------------ | | Chrome | Supported | Supported | | Firefox | Supported | Supported | | Internet Explorer | N/A | Supported (IE 10+) | | Microsoft Edge | N/A | Supported | | Opera | Supported | Supported | | Safari | Supported | Not supported |

Mobile Devices

Generally speaking, Fjaka supports the latest versions of each major platform’s default browsers. Note that proxy browsers (such as Opera Mini, Opera Mobile’s Turbo mode, UC Browser Mini, and Amazon Silk) are not supported.

| | Android | iOS | Windows 10 mobile | | ------------------------- | ------------------------- | --------- | ----------------- | | Chrome | Supported | Supported | N/A | | Firefox | Supported | Supported | N/A | | Safari | N/A | Supported | N/A | | Android Browser & WebView | Supported (Android v5.0+) | N/A | N/A | | Microsoft Edge | N/A | N/A | Supported |

Layout


Responsive Breakpoints

| We use Bootstrap responsive breakpoints | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | We use Bootstrap responsive breakpoints and its mixins. If you're looking for original documentation, you can find it here. |

Since Fjaka is developed to be mobile first, we use a handful of media queries to create sensible breakpoints for our layouts and interfaces. These breakpoints are mainly based on minimum viewport widths and allow us to scale up elements as the viewport changes.

Fjaka primarily uses the following media query ranges—or breakpoints—in our source SASS files for our layout, grid system, and components.

/**
 * Extra small devices (portrait phones, less than 576px)
 * No media query since this is the default in fjaka
 */

/**
 * Small devices (landscape phones, 576px and up)
 */
@media ( min-width: 576px ) { ... }

/**
 * Medium devices (tablets, 768px and up)
 */
@media ( min-width: 768px ) { ... }

/**
 * Large devices (desktops, 992px and up)
 */
@media ( min-width: 992px ) { ... }

/**
 * Extra large devices (large desktops, 1200px and up)
 */
@media ( min-width: 1200px ) { ... }

Since we write our source CSS in SASS, all our media queries are available via SASS mixins:

@include media-breakpoint-up( xs ) { ... }
@include media-breakpoint-up( sm ) { ... }
@include media-breakpoint-up( md ) { ... }
@include media-breakpoint-up( lg ) { ... }
@include media-breakpoint-up( xl ) { ... }

/**
 * Example usage:
 */
@include media-breakpoint-up( sm ) {
    .some-class { display: block; }
}

We occasionally use media queries that go in the other direction (the given screen size or smaller):

/**
 * Extra small devices (portrait phones, less than 576px)
 */
@media ( max-width: 575px ) { ... }

/**
 * Small devices (landscape phones, less than 768px)
 */
@media ( max-width: 767px ) { ... }

/**
 * Medium devices (tablets, less than 992px)
 */
@media ( max-width: 991px ) { ... }

/**
 * Large devices (desktops, less than 1200px)
 */
@media ( max-width: 1199px ) { ... }

/**
 * Extra large devices (large desktops)
 * No media query since the extra-large breakpoint has no upper bound on its width
 */

Once again, these media queries are also available via SASS mixins:

@include media-breakpoint-down( xs ) { ... }
@include media-breakpoint-down( sm ) { ... }
@include media-breakpoint-down( md ) { ... }
@include media-breakpoint-down( lg ) { ... }

There are also media queries and mixins that are used for targeting a single segment of screen sizes using the minimum and maximum breakpoint widths.

/**
 * Extra small devices (portrait phones, less than 576px)
 */
@media ( max-width: 575px ) { ... }

/**
 * Small devices (landscape phones, 576px and up)
 */
@media ( min-width: 576px ) and ( max-width: 767px ) { ... }

/**
 * Medium devices (tablets, 768px and up)
 */
@media ( min-width: 768px ) and ( max-width: 991px ) { ... }

/**
 * Large devices (desktops, 992px and up)
 */
@media ( min-width: 992px ) and ( max-width: 1199px ) { ... }

/**
 * Extra large devices (large desktops, 1200px and up)
 */
@media ( min-width: 1200px ) { ... }

These media queries are also available via SASS mixins:

@include media-breakpoint-only( xs ) { ... }
@include media-breakpoint-only( sm ) { ... }
@include media-breakpoint-only( md ) { ... }
@include media-breakpoint-only( lg ) { ... }
@include media-breakpoint-only( xl ) { ... }

Similarly, media queries may span multiple breakpoint widths:

/**
 * Example
 *
 * Apply styles starting from medium devices and up to extra large devices
 */
@media ( min-width: 768px ) and ( max-width: 1199px ) { ... }

The SASS mixin for targeting the same screen size range would be:

@include media-breakpoint-between( md, xl ) { ... }

Grid

We use a mobile-first flexbox grid to build layouts of all shapes and sizes thanks to a twelve-column system, five default responsive tiers, SASS variables, etc.

Our grid system uses a series of containers, rows, and columns to layout and align content. It’s built with flexbox and is fully responsive. Below is an example and an in-depth look at how the grid comes together.

| New to or unfamiliar with flexbox? | | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | Read this CSS Tricks flexbox guide for background, terminology, guidelines, and code snippets. |

| Flexbox bugs and limitations | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Be aware of the limitations and bugs around flexbox, like the inability to use some HTML elements as flex containers. |

Let’s take a look at the table with all information about our grid:

| Number of columns | 12 | | ----------------- | -------------------------------------- | | Gutter width | 30px (15px on each side of a column) | | Nestable | Yes |

| Size | Max container width | Class prefix | | ----------- | ------------------- | -------------------- | | Extra Small | None (auto) | .o-col-<number> | | Small | 546px | .o-col-<number>@sm | | Medium | 738px | .o-col-<number>@md | | Large | 962px | .o-col-<number>@lg | | Extra Large | 1200px | .o-col-<number>@xl |

Containers

Containers are the most basic layout element in Fjaka and are required when using our default grid system.

Choose from a responsive, fixed-width container (meaning its max-width changes at each breakpoint) or fluid-width (meaning it’s 100% wide all the time).

<!-- Fixed-width container -->
<div class="o-container">
...
</div>

<!-- Fluid-width container -->
<div class="o-container-fluid">
...
</div>

Rows

Rows are wrappers for columns. Each column has horizontal padding (called a gutter) for controlling the space between them. This padding is then counteracted on the rows with negative margins. This way, all the content in your columns is visually aligned down the left side.

Rows should always be placed inside .o-container.

<div class="o-container">
    <div class="o-row">
    ...
    </div>

    <div class="o-row">
    ...
    </div>
</div>

Columns

In a grid layout, content must be placed within columns, and only columns may be immediate children of rows.

Thanks to flexbox, grid columns without a specified width will automatically layout as equal-width columns. For example, four instances of .o-col@sm will each automatically be 25% wide from the small breakpoint and up.

<div class="o-container">
    <div class="o-row">
        <div class="o-col@sm"></div>
        <div class="o-col@sm"></div>
        <div class="o-col@sm"></div>
    </div>
</div>

Column classes indicate the number of columns you’d like to use out of the possible 12 per row. So, if you want three equal-width columns across, you can use .o-col-4.

<div class="o-container">
    <div class="o-row">
        <div class="o-col-4"></div>
        <div class="o-col-4"></div>
        <div class="o-col-4"></div>
    </div>
</div>

Column widths are set in percentages, so they’re always fluid and sized relative to their parent element.

Without gutter

Columns have horizontal padding to create the gutters between individual columns. However, you can remove the margin from rows and padding from columns with .o-row--no-gutters on the .o-row.

<div class="o-container">
    <div class="o-row o-row--no-gutters">
         <div class="o-col-4"></div>
         <div class="o-col-4"></div>
         <div class="o-col-4"></div>
    </div>
</div>

Breakpoints

To make the grid responsive, there are five grid breakpoints, one for each responsive breakpoint: all breakpoints (extra small), small, medium, large, and extra large.

Grid breakpoints are based on minimum width media queries, meaning they apply to that one breakpoint and all those above it (e.g., .o-col-4@sm applies to small, medium, large, and extra large devices, but not the first xs breakpoint).

<div class="o-container">
    <div class="o-row">
        <div class="o-col-4@sm"></div>
        <div class="o-col-4@sm"></div>
        <div class="o-col-4@sm"></div>
    </div>
</div>

Offsetting

You can offset grid columns in two ways: responsive .o-offset- grid classes and margin utilities. Grid classes are sized to match columns, while margins are more useful for quick layouts where the width of the offset is variable.

Offset Classes

Move columns to the right using .o-offset-<number>@md classes. These classes increase the left margin of a column by <number> columns. For example, .o-offset-4@md moves .o-col-4@md over four columns.

<div class="o-container">
    <div class="o-row">
        <div class="o-col-4@md">.o-col-4@md</div>
        <div class="o-col-4@md o-offset-4@md">.o-col-4@md .o-offset-4@md</div>
    </div>

    <div class="o-row">
        <div class="o-col-3@md o-offset-3@md">.o-col-3@md .o-offset-3@md</div>
        <div class="o-col-3@md o-offset-3@md">.o-col-3@md .o-offset-3@md</div>
    </div>

    <div class="o-row">
        <div class="o-col-6@md o-offset-3@md">.o-col-6@md .o-offset-3@md</div>
    </div>
</div>

Margin Utilities

You can use margin utilities like .u-mr-auto to force sibling columns away from one another.

<div class="o-container">
    <div class="o-row">
        <div class="o-col-4@md">.o-col-4@md</div>
        <div class="o-col-4@md u-ml-auto">.o-col-4@md .u-ml-auto</div>
    </div>

    <div class="o-row">
        <div class="o-col-3@md u-ml-auto@md">.o-col-3@md .u-ml-auto@md</div>
        <div class="o-col-3@md u-ml-auto@md">.o-col-3@md .u-ml-auto@md</div>
    </div>

    <div class="o-row">
        <div class="o-col u-mr-auto">.o-col .u-mr-auto</div>
        <div class="o-col">.o-col</div>
    </div>
</div>

Nesting

To nest your content with the default grid, add a new .o-row and set of .o-col-<number>@sm columns within an existing .o-col-<number>@sm column. Nested rows should include a set of columns that add up to 12 or fewer (it is not required to use all 12 available columns).

<div class="o-row">
    <div class="o-col">
        Level 1: .o-col

        <div class="o-row">
            <div class="o-col-8 o-col-6@sm">
                Level 2: .o-col-8 .o-col-6@sm
            </div>

            <div class="o-col-4 o-col-6@sm">
                Level 2: .o-col-4 .o-col-6@sm
            </div>
        </div>
    </div>
</div>

List Objects

List bare

Strip list-like appearance from lists by removing their bullets and any indentation.

| You don't need item-class everywhere | | -------------------------------------------------------------------------------------------------------------------------- | | Declaring the item-class might not be necessary everywhere, but it is, for example, in <dl> lists for the <dd> childs. |

<ul class="o-list-bare">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>
<ul class="o-list-bare">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>

List inline

The list-inline object displays a list of items in one line.

<ul class="o-list-inline">
    <li class="o-list-inline__item">Item 1</li>
    <li class="o-list-inline__item">Item 2</li>
    <li class="o-list-inline__item">Item 3</li>
</ul>
.list {
    @extend .o-list-inline;
}

.list__item {
    @extend .o-list-inline__item;
}

Content


Reset

Reset is a collection of element-specific CSS changes to provide an elegant, consistent, and simple baseline to build upon.

| Normalize.css | | ----------------------------------------------------------------------------------------- | | We build our reset styles upon normalize.css. |

Approach

Here are our guidelines and reasons for choosing what to override in our reset files:

  • Update some browser default values to use rem instead of em for scalable component spacing.
  • Avoid margin-top. Vertical margins can collapse, yielding unexpected results. More importantly, though, a single direction of margin is a simpler mental model.
  • For easier scaling across device sizes, block elements should use rem for margins.
  • Keep declarations of font-related properties to a minimum, using inherit whenever possible.

Page Defaults

The <body> element is updated to provide better page-wide defaults. More specifically:

  • The box-sizing is globally set on every element, including *::before and *::after, to border-box. This ensures that the declared width of the element is never exceeded due to padding or border.
  • Base font-size is declared on the <html> element, 16px on desktop and 14px for devices below 768px. We recommend using rem values on other elements for easier responsive type-scaling via media queries while respecting user preferences and ensuring a more accessible approach.
  • The <html> also sets a global font-family and line-height. This is inherited later by some elements to prevent font inconsistencies.
  • We use a “native font stack” for optimum text rendering on every device and OS. Read more about native font stacks in this Smashing Magazine article.

Spacing

We avoid using margin-top. Vertical margins can collapse, yielding unexpected results. More importantly though, a single direction of margin is a simpler mental model.

address,
h1, h2, h3, h4, h5, h6,
blockquote, p, pre,
dl, ol, ul,
figure,
hr,
table,
fieldset {
    margin-bottom: $spacer-base;
}

A lot of elements have their margin-bottom inherited from settings/_spacing.scss. Change $spacer-base variable to updated base value.

$spacer-base: 1.25rem;

Typography

Documentation and examples for Fjaka typography, including global settings, headings, body text, and more.

Native Font Stack

We use a “native font stack” for optimum text rendering on every device and OS. Read more about native font stacks in this Smashing Magazine article.

$font-family-base:
    /* Safari for OS X and iOS (San Francisco) */
    -apple-system,
    /* Chrome < 56 for OS X (San Francisco) */
    'BlinkMacSystemFont',
    /* Windows */
    'Segoe UI',
    /* Android */
    'Roboto',
    /* Basic web fallback */
    'Helvetica Neue','Arial', sans-serif,
    /* Emoji fonts */
    'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' !default;

This font-family is applied to the <html> and automatically inherited globally throughout Fjaka. To switch the global font-family, update $font-family-base in settings/_typography.scss.

Responsive Typography

Responsive typography refers to scaling text and components by simply adjusting the root element’s font-size within a series of media queries. Fjaka doesn't do this for you, but it’s pretty easy to add breakpoints if you need them.

Here’s an example of it in practice. Choose whatever font-size and media queries you wish.

html {
    font-size: 14px;

    @include media-breakpoint-up( md ) {
        font-size: 16px;
    }

    @include media-breakpoint-up( lg ) {
        font-size: 20px;
    }
}

Headings and Paragraphs

All heading elements (<h1> - <h6>) and <p> are reset to have their margin-top removed. Headings and paragraphs have margin-bottom added for easier spacing.

You can change the heading font-size in settings/_typography.scss. Look for the $font-sizes-headings map.

$font-sizes-headings: (
    h1: 2.25rem,
    h2: 1.75rem,
    h3: 1.5rem,
    h4: 1.25rem,
    h5: 1.125rem,
    h6: 1rem,
) !default;

Images

Documentation and examples for opting images into responsive behavior (so they never become larger than their parent elements).

Images in Fjaka are made responsive by default. max-width: 100%; is applied to the image so that it scales with the parent element.

img,
svg {
    max-width: 100%;
    vertical-align: middle;
}

Components


The component is a concrete, implementation-specific piece of UI. All of the changes you make to its styles should be detectable in your current context.

Hamburger Icon

The hamburger is a button component placed typically in a top corner of a website. You can use it as an offcanvas toggle or as a toggle for something else.

HTML

<button class="c-hamburger-icon c-hamburger-icon--slider js-hamburger-icon" type="button">
    <span class="c-hamburger-icon__box">
        <span class="c-hamburger-icon__inner"></span>
    </span>
</button>

| JavaScript hook and variation class needed | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | .js-hamburger-icon hook make our icon interactive. Furthermore, we want to make our icon extendible. To make that possible, we always need to add some variation class next to .c-hamburger-icon. |

Variations

By default, there’s only one variation (modifier class) available:

| Name | Class | | ------ | --------------------------- | | Slider | .c-hamburger-icon--slider |

Feel free to add more variations; all you need to do is to duplicate --slider variation and create a new one with a new name.

Offcanvas

Offcanvas panels are positioned outside of the viewport and slide in when activated. Setting up an offcanvas layout in Fjaka is super easy.

HTML

<div class="c-offcanvas">
    <div class="c-offcanvas__inner">
        <!-- Your content goes here -->
    </div>
</div>

<button class="js-offcanvas-toggle" type="button">Toggle</button>

| Add offcanvas HTML markup below the opening <body> tag | | ------------------------------------------------------------------------------------------- | | We strongly recommend you add offcanvas HTML markup immediately after opening <body> tag. |

| Add JavaScript hook to toggle offcanvas | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | You have to add .js-offcanvas-toggle hook on any element you want to toggle your offcanvas. We recommend using the hamburger icon component with offcanvas. The offcanvas toggle can be placed anywhere on your page. |

Utilities


Utility classes have a specific role (often providing only one declaration) and should not be bound to or changed. They can be reused and are not tied to any particular UI piece.

Layout

Display

Utilities for controlling the display box type of an element.

| Class | Properties | | -------------- | ------------------------ | | u-block | display: block; | | u-inline-block | display: inline-block; | | u-inline | display: inline; | | u-hidden | display: none; | | u-flex | display: flex; | | u-inline-flex | display: inline-flex; |

| Display classes are responsive | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Fjaka uses an intuitive @<breakpoint> (e.g. @lg) suffix that makes it easy to notice responsive classes in your markup while keeping the original class name recognizable and intact.For example, if you want to apply .u-block on large screens, breakpoint, and up, you'll use this class: .u-block@lg. |

Floats

Utilities for controlling the wrapping of content around an element.

| Class | Properties | | ------------- | --------------- | | u-float-right | float: right; | | u-float-left | float: left; | | u-float-none | float: none; |

| Float classes are responsive | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Fjaka uses an intuitive @<breakpoint> (e.g. @lg) suffix that makes it easy to notice responsive classes in your markup while keeping the original class name recognizable and intact.For example, if you want to apply .u-float-right on large screens, breakpoint, and up, you'll use this class: .u-float-right@lg. |

Overflow

Utilities for controlling how an element handles content that is too large for the container.

| Class | Properties | | ------------------- | --------------------- | | u-overflow-auto | overflow: auto; | | u-overflow-hidden | overflow: hidden; | | u-overflow-visible | overflow: visible; | | u-overflow-scroll | overflow: scroll; | | u-overflow-x-scroll | overflow-x: scroll; | | u-overflow-y-scroll | overflow-y: scroll; |

Position

Utilities for controlling how an element is positioned in the DOM.

| Class | Properties | | ---------- | --------------------- | | u-static | position: static; | | u-fixed | position: fixed; | | u-absolute | position: absolute; | | u-relative | position: relative; | | u-sticky | position: sticky; | | u-pin-t | top: 0; | | u-pin-r | right: 0; | | u-pin-b | bottom: 0; | | u-pin-l | left: 0; |

Typography

Text Color

Utilities for controlling the text color of an element.

| Class | Properties | | ---------------- | --------------------------------- | | u-text-primary | color: color( primary ); | | u-text-secondary | color: color( secondary ); | | u-text-black | color: color( extra, black ); | | u-text-white | color: color( extra, white ); | | u-text-links | color: color( extra, white ); | | u-text-success | color: color( extra, success ); | | u-text-info | color: color( extra, info ); | | u-text-warning | color: color( extra, warning ); | | u-text-error | color: color( extra, error ); |

| Text color classes are customizable | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Text color utilities are auto-generated; you can modify and add or remove colors in $color-primary$color-secondary and $color-extra maps inside settings/_colors.scss file. |

Font Size

Utilities for controlling the font size of an element.

| Class | Properties | | ----------- | ---------------------- | | u-h1 | font-size: 2.25rem; | | u-h2 | font-size: 1.75rem; | | u-h3 | font-size: 1.5rem; | | u-h4 | font-size: 1.25rem; | | u-h5 | font-size: 1.125rem; | | u-h6 | font-size: 1rem; | | u-text-xs | font-size: .75rem; | | u-text-sm | font-size: .875rem; | | u-text-base | font-size: 1rem; |

Style and Decoration

Utilities for controlling the style of text.

| Class | Properties | | ----------- | ---------------------------- | | u-italic | font-style: italic; | | u-roman | font-style: normal; | | u-uppercase | text-transform: uppercase; |

Text Alignment

Utilities for controlling the alignment of text.

| Class | Properties | | ------------- | --------------------- | | u-text-left | text-align: left; | | u-text-center | text-align: center; | | u-text-right | text-align: right; |

| Text alignment classes are responsive | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Fjaka uses an intuitive @<breakpoint> (e.g. @lg) suffix that makes it easy to notice responsive classes in your markup while keeping the original class name recognizable and intact.For example, if you want to apply .u-text-center on large screens, breakpoint, and up, you'll use this class: .u-text-center@lg. |

Backgrounds

Background Color

Utilities for controlling an element's background color.

| Class | Properties | | -------------- | -------------------------------------------- | | u-bg-primary | background-color: color( primary ); | | u-bg-secondary | background-color: color( secondary ); | | u-bg-black | background-color: color( extra, black ); | | u-bg-white | background-color: color( extra, white ); | | u-bg-links | background-color: color( extra, links ); | | u-bg-success | background-color: color( extra, success ); | | u-bg-info | background-color: color( extra, info ); | | u-bg-warning | background-color: color( extra, warning ); | | u-bg-error | background-color: color( extra, error ); |

| Background color classes are customizable | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Background color utilities are auto-generated; you can modify and add or remove colors in $color-primary$color-secondary and $color-extra maps inside settings/_colors.scss file. |

Background Position

Utilities for controlling the position of an element's background image.

| Class | Properties | | ----------------- | ------------------------------------ | | u-bg-bottom | background-position: bottom; | | u-bg-center | background-position: center; | | u-bg-left | background-position: left; | | u-bg-left-bottom | background-position: left bottom; | | u-bg-left-top | background-position: left top; | | u-bg-right | background-position: right; | | u-bg-right-bottom | background-position: right bottom; | | u-bg-right-top | background-position: right top; | | u-bg-top | background-position: top; |

Flexbox

Align Items

Utilities for controlling how flex items are positioned along a container's cross-axis.

| Class | Properties | | ---------------- | -------------------------- | | u-items-stretch | align-items: stretch; | | u-items-start | align-items: flex-start; | | u-items-center | align-items: center; | | u-items-end | align-items: flex-end; | | u-items-baseline | align-items: baseline; |

Align Content

Utilities for controlling how lines are positioned in multi-line flex containers.

| Class | Properties | | ----------------- | ------------------------------- | | u-content-start | align-content: flex-start; | | u-content-center | align-content: center; | | u-content-end | align-content: flex-end; | | u-content-between | align-content: space-between; | | u-content-around | align-content: space-around; |

Justify Content

Utilities for controlling flex items are positioned along a container's main axis.

| Class | Properties | | ----------------- | --------------------------------- | | u-justify-start | justify-content: flex-start; | | u-justify-center | justify-content: center; | | u-justify-end | justify-content: flex-end; | | u-justify-between | justify-content: space-between; | | u-justify-around | justify-content: space-around; |

Order

Utilities for controlling how flex items are ordered in a container.

| Class | Properties | | ---------- | ------------ | | u-order-1 | order: 1; | | u-order-2 | order: 2; | | u-order-3 | order: 3; | | u-order-4 | order: 4; | | u-order-5 | order: 5; | | u-order-6 | order: 6; | | u-order-7 | order: 7; | | u-order-8 | order: 8; | | u-order-9 | order: 9; | | u-order-10 | order: 10; | | u-order-11 | order: 11; | | u-order-12 | order: 12; |

Spacing

Margin and Padding

Utilities for controlling an element's padding and margin.

Control an element's padding and margin using the .u-p{side?}-{size}.u-m{side?}-{size}, and .u-m{side?}-neg-{size} utilities.

For example, .u-pt-2 would add 1.25rem of padding to the top of the element, .u-mx-0 would make the horizontal margin zero, and .u-mb-neg-6 would add a 3.75rem negative margin to the bottom of an element.

| Class | Side (Optional) | Space (Optional) | | ------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | p — Paddingm — Margin | All (Default)t — Topr — Rightb — Bottoml — Leftx — Horizontaly — Vertical | 0 — 01 — .625rem (10px)2 — 1.25rem (20px)3 — 1.875rem (30px)...auto — auto (Margins only) |

| Spacing classes are customizable | | ------------------------------------------------------------------------------------------------------------------------------------ | | Spacing utilities are auto-generated; you can modify and add or remove sizes in $spacers map inside settings/_spacing.scss file. |

Other

SVG

Utilities for styling SVG elements.

| Class | Properties | | ---------------- | ----------------------- | | u-fill-current | fill: currentColor; | | u-stroke-current | stroke: currentColor; |