1.2.1 • Published 4 years ago

tjoolkit v1.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

tjoolkit

tjoolkit is a SCSS and HTML boilerplate containing a set of functions and mixins essential to my front-end development workflow. For the moment, it uses the sass-planifolia library as a sole dependency.

Have any suggestions or feedback? Reach out!

Installation

npm install tjoolkit or if you're old-school download and import tjoolkit ✌️

Responsive Mixin

NameDescription
responsive()Allows for inline responsive styling of a single CSS property. Accepts a property parameter, a base value and a list of key-value pairs consisting of a breakpoint and a value to be assigned to the property at said breakpoint. If the base value as well as the list values are numerical and pixel-based, they will be interpolated and change fluidly between each breakpoint.

Example

@include responsive(font-size, 12px, $md: 16px, $lg: 18px);

// compiles to
font-size: 12px;

@media screen and (min-width: 320px) {
    font-size: calc(0.8928571429vw + 9.1428571429px); 
    }
@media screen and (min-width: 768px) {
    font-size: calc(0.8928571429vw + 9.1428571429px); 
    }
@media screen and (min-width: 992px) {
    font-size: 18px;
    }

Layout Mixins

NameDescription
container()Accepts a mode parameter and returns either a fluid 100% or stepped fixed-width container.
column()Accepts a key-value-list of breakpoints and width values. Unitless width values are automatically converted to percentages, facilitating grid based widths.
row()Creates a new row within a parent column for further nesting

Example

@include container(fixed);
@include column(2/3);
@include row();

/* container */
width: 100%;
margin-right: auto;
margin-left: auto;
display: flex;
overflow-x: hidden;

@media screen and (min-width: 768px) {
    width: 720px; 
    }
@media screen and (min-width: 992px) {
    width: 960px; 
    }
@media screen and (min-width: 1200px) {
    width: 1140px; 
    }
	
/* column */
width: 66.6666666667%;
padding-right: 1rem;
padding-left: 1rem;

/* row */
width: calc(100% + 2rem);
display: -webkit-box;
display: flex;
flex-flow: row wrap; 

Selector Mixins

NameDescription
nth()Targets the n-th element of a specific type. Accepts a number parameter.
first()Targets the first element of a specific type.
last()Targets the last element of a specific type.
empty()Targets an element of a specific type not containing any child elements.
count()Targets elements of a specific type based on their number within a shared parent element. Accepts a number parameter.
range()Targets a range of elements of a specific type. Accepts two number parameters for lower and upper range limit.

Functions

NameDescriptionExample
ease()Returns a cubic-bezier curve function for use with CSS transitions and animations. Accepts a direction and function parameter, the latter being optional and defaulting to a value of linear.ease(in-out, quintic);
color()Returns a color value from a key-value map. Accepts a color name.color(blue);
pos()Converts a color to CIELAB color space and optimizes it for positive (i.e. dark on light) applications. Accepts a color name and an optional lightness parameter between 0 and 1. The value of the lightness parameter defaults to 0.4.pos(blue, 0.4);
neg()Functionally identical to the pos() function but optimized for negative (i.e. light on dark) applications. The value of the lightness parameter defaults to 0.6.neg(blue, 0.8);
tint()Lightens a color by mixing it with white. Accepts a color name and an optional lightness parameter between 0 and 1. The value of the lightness parameter defaults to 0.5.tint(blue, 0.5);
shade()Darkens a color by mixing it with black. Accepts a color name and an optional lightness parameter between 0 and 1. The value of the lightness parameter defaults to 0.5.shade(blue, 0.5);

Authors

License

This project is licensed under the MIT License.

1.2.1

4 years ago

1.2.0

4 years ago