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

alabaster

v1.1.14

Published

A lightweight and flexible tool set to build awesome web platform.

Downloads

32

Readme

Alabaster

A lightweight and flexible tool set to build awesome web platform.

Alabaster is a sass tool sets develop to build awesome web site faster and easy. It's build especially on how we develop the frontend in Axiacore.

What you would find

We use a concept call modular scale to keep the vertical rhythm and consistency in our design. We develop some mixin so we can layout the design easy and faster.

You are going to find some helpers so you can write smooth Sass.

Quick install

Alabaster is constantly in development.

Yarn

yarn add alabaster

or

NPM

npm i alabaster

Usage

Call the file alabaster.sass in the file that compile your Sass and be sure you call it before the Sass's files you use to build your web.

@import 'route-to-file/alabaster.sass'
@import 'header'

You can change the variables default value, by calling them before you call the alabaster.sass file and add !default to the end of the line.

$ratio: 1.333 !default

@import 'route-to-file/alabaster.sass'
@import 'header'

Modular scale

Used to keep the vertical rhythm and consistency in our design.

Variables

Name | Default | Description ------ | ------- | ----------- $base-font-size | 100 | Font size for mobile in % $base-font-size-tablet | 112.5 | Font size for tablet and above in % $line-height | 1.45 | Line height fonts for mobile $line-height-tablet | 1.7 | Line height fonts tablet and above $ratio | 1.5 | Is multiplied by the base to produce the scale of numbers that are related

Sass functions:

ms(value) Returns a value in rem for the font size based in the modular scale.

dms-rem-mobile(value) Returns a value in rem for distances in mobile.

dms-rem-tablet(value) Returns a value in rem for distances in tablet and above.

dms-px-mobile(value) Returns a value in px for distances in mobile.

dms-px-tablet(value) Returns a value in px for distances in tablet and above.

Responsive breakpoints

Alabaster is developed to be mobile first, we use media queries to create breakpoints for layouts. These breakpoints are based on minimum viewport widths and allow to scale up elements as the viewport changes.

Variables

Name | Default | Description ------ | ------- | ----------- $mobile | 500px | Media query breakpoint for 500px and above $tablet | 768px | Media query breakpoint for 500px and above $desktop | 994px | Media query breakpoint for 994px and above $desktop-md| 1200px | Media query breakpoint for 1200px and above $desktop-lg | 1400px | Media query breakpoint for 1400px and above

Example:

@include breakpoint($tablet)
	code here...

Components

Alabaster includes the following components:

Wrapper container

The .wrapper-container class is used to wrap all page content and give it a max width. It is used to preserve the design in very large screens.

Variables

Name | Default | Description ------ | ------- | ----------- $wrapper-container-max-width | 1920px | Max width of the container in px $wrapper-container-shadow | 0 0 30px -15px rgba(0, 0, 0, 1) | Box shadow of the container $wrapper-background-color | white | Background color of the container

Example:

<body>
	<div class="wrapper-container">
		...
	</div>
</body>

Container

The .container class is used to center content horizontally.

Variables

Name | Default | Description ------ | ------- | ----------- $container-max-width | 1230px | Max width of the container in px $container-xs-max-width | 370px | Max width of the extra small container in px $container-sm-max-width | 570px | Max width of the small container in px $container-md-max-width | 870px | Max width of the medium container in px

Example:

<div class="container">
	...
</div>
<div class="container container_xs">
	...
</div>
<div class="container container_sm">
	...
</div>
<div class="container container_md">
	...
</div>

Grid

Flexbox grid to build layouts.

Variables

Name | Default | Description ------ | ------- | ----------- $gutter | 20px | Space between columns in mobile $gutter-tablet | 20px | Space between columns in tablet and above $columns-number | 12 | Columns number for the grid $grid-background-color | rgba(black, .1) | Visual guide of columns grid (only develop)

Building a grid layout is simple:

  1. Add class .columns to container
  2. Add elements with class .col

Example:

<div class="columns">
	<div class="col"></div>
	<div class="col"></div>
</div>
Modifiers in columns container

.columns_no-gutter Remove the space between columns.

<div class="columns columns_no-gutter">
	...
</div>

.columns_no-gutter-x Remove the space between columns in the x axis.

<div class="columns columns_no-gutter-x">
	...
</div>

.columns_no-gutter-y Remove the space between columns in the y axis.

<div class="columns columns_no-gutter-y">
	...
</div>

.columns_mobile Display the grid for mobile.

<div class="columns columns_mobile">
	...
</div>

.columns_mobile-xl Display the grid for breakpoint $mobile and above.

<div class="columns columns_mobile-xl">
	...
</div>

.columns_multiline Columns items will wrap onto multiple lines.

<div class="columns columns_multiline">
	...
</div>

.columns_centered Center columns items horizontally.

<div class="columns columns_centered">
	...
</div>

.columns_align-items-center Align columns items to the top.

<div class="columns columns_align-items-center">
	...
</div>

.columns_align-items-end Align columns items to the bottom.

<div class="columns columns_align-items-end">
	...
</div>

.columns_show-grid Shows a visual guide of the grid for develop purpose.

<div class="columns columns_show-grid">
	...
</div>
Modifiers in columns element

.col_x Size of the column. X = number of columns (from 1 to $columns-number).

<div class="columns">
	<div class="col col_2">...</div>
	<div class="col col_4">...</div>
</div>

A column can have different sizes at each breakpoint:

<div class="columns">
	<div class="col col_2 col_4-desktop">...</div>
	<div class="col col_4 col_2-desktop">...</div>
</div>

.col_offset-x Size of the column offset. X = number of columns (from 0 to $columns-number - 1).

<div class="columns">
	<div class="col col_2 col_offset-2">...</div>
	<div class="col col_4 col_offset-1">...</div>
</div>

A column can have different offset sizes at each breakpoint:

<div class="columns">
	<div class="col col_2 col_offset-2 col_offset-1-desktop">...</div>
	<div class="col col_4 col_offset-1 col_offset-2-desktop">...</div>
</div>

.col_narrow Column take the space it needs.

<div class="columns">
	<div class="col col_narrow">...</div>
	<div class="col">...</div>
</div>

Buttons

The .btn class can be used on <a> <button>.

Variables

Name | Default | Description ------ | ------- | ----------- $btn-height | 30px | Height of the button in mobile $btn-tablet-height | 40px | Height of the button in tablet and above $btn-sm-height | 30px | Small height of the button in mobile $btn-sm-tablet-height | $btn-sm-height | Small height of the button in tablet and above $btn-lg-height | 50px | Large height of the button in mobile $btn-lg-tablet-height | $btn-lg-height | Large height of the button in tablet and above $btn-sides-padding | 12px | Sides padding of the button in mobile $btn-sides-tablet-padding | $btn-sides-padding | Sides padding of the button in tablet and above $btn-border-radius | 0 | Border radius of the button $btn-icon-size | 24px | Size of the svg icon in mobile $btn-icon-tablet-size | $btn-icon-size | Size of the svg icon in tablet and above $icon-btn-default-size | 34px | Size of the icon button in mobile $icon-btn-default-tablet-size | $icon-btn-default-size | Size of the icon button in tablet and above $icon-btn-svg-default-size | 30px | Size of the svg icon button in mobile $icon-btn-svg-default-tablet-size | $icon-btn-svg-default-size | Size of the svg icon button in tablet and above $icon-btn-sm-size | 24px | Small size of the icon button in mobile $icon-btn-sm-tablet-size | $icon-btn-sm-size | Small size of the icon button in tablet and above $icon-btn-svg-sm-size | 20px | Small size of the svg icon button in mobile $icon-btn-svg-sm-tablet-size | $icon-btn-svg-sm-size | Small size of the svg icon button in tablet and above $icon-btn-lg-size | 44px | Large size of the icon button in mobile $icon-btn-lg-tablet-size | $icon-btn-lg-size | Large size of the icon button in tablet and above $icon-btn-svg-lg-size | 40px | Large size of the svg icon button in mobile $icon-btn-svg-lg-tablet-size | $icon-btn-svg-lg-size | Large size of the svg icon button in tablet and above $icon-btn-border-radius | 50% | Border radius of the icon button

Examples:

General button with text and svg icon:

<button class="btn">Button</button>
<button class="btn">
	<svg class="btn__svg">...</svg>
	Button
</button>

The svg icon can be on the right:

<button class="btn">
	<svg class="btn__svg btn__svg_right">...</svg>
	Button
</button>

General icon button:

<button class="btn btn_icon">
	<svg class="btn__svg">...</svg>
</button>
Modifiers

.btn_disabled Buttons look inactive. Use only in <a>, for <button> add disabled attribute.

<a class="btn btn_disabled">Button</a>
<button class="btn" disabled>Button</button>

.btn_is-full-width Button width 100%.

<button class="btn btn_is-full-width">Button</button>

.btn_shadow Button with box shadow.

<button class="btn btn_shadow">Button</button>

.btn_no-border Button without border.

<button class="btn btn_no-border">Button</button>

.btn_sm Small button.

<button class="btn btn_sm">Button</button>
<button class="btn btn_icon btn_sm">
	<svg class="btn__svg">...</svg>
</button>

.btn_lg Large button.

<button class="btn btn_lg">Button</button>
<button class="btn btn_icon btn_lg">
	<svg class="btn__svg">...</svg>
</button>

.btn_outline Remove the background color.

<button class="btn btn_outline">Button</button>
<button class="btn btn_icon btn_outline">
	<svg class="btn__svg">...</svg>
</button>

Color style

Alabaster bring 4 styles for buttons: error info success and warning

Variables

Name | Default | Description ------ | ------- | ----------- $btn-error-background-color | #c00 | Background color error $btn-error-background-color-hover | darken($btn-error-background-color, 10%) | Background color error hover $btn-error-color | $white | Text color error $btn-error-color-hover | $white | Text color error hover $btn-info-background-color | #666 | Background color info $btn-info-background-color-hover | darken($btn-info-background-color, 10%) | Background color info hover $btn-info-color | $white | Text color info $btn-info-color-hover | $white | Text color info hover $btn-success-background-color | #009c00 | Background color success $btn-success-background-color-hover | darken($btn-success-background-color, 10%) | Background color success hover $btn-success-color | $white | Text color success $btn-success-color-hover | $white | Text color success hover $btn-warning-background-color | #ca9500 | Background color warning $btn-warning-background-color-hover | darken($btn-warning-background-color, 10%) | Background color warning hover $btn-warning-color | $white | Text color warning $btn-warning-color-hover | $white | Text color warning hover

<button class="btn btn_error">Button error</button>
<button class="btn btn_info">Button info</button>
<button class="btn btn_success">Button success</button>
<button class="btn btn_warning">Button warning</button>

Forms

Simple form controls.

Variables

Name | Default | Description ------ | ------- | ----------- $inputs-height | 40px | Height of input in mobile $inputs-tablet-height | $inputs-height | Height of input in tablet and above $inputs-sides-padding | 12px | Sides padding of input in mobile $inputs-sides-tablet-padding | $inputs-sides-padding | Sides padding of input in tablet and above $textarea-height | 120px | Textarea height in mobile $textarea-tablet-height | $textarea-height | Textarea height in tablet and above $textarea-padding | 12px | Padding of textarea in mobile $textarea-tablet-padding | $textarea-padding | Padding of textarea in tablet and above $inputs-background-color | white | Background color of input $inputs-readonly-background-color | white | Background color of input with attribute readonly $inputs-color-text | #2b2b2b | Color text of input $inputs-border-color | #ebebeb | Border color of input $input-border-hover-color | #393939 | Border color of input in hover $input-background-hover-color | white | Background color of input in hover $input-border-focus-color | #2b2b2b | Border color of input in focus $input-background-focus-color | white | Background color of input in focus $select-arrow-color | #2b2b2b | Arrow color of .select class $inputs-border-radius | 0 | Border radius of input $field-help-text-color | $inputs-color-text | Text color of .field__help-text class $field-error-color-text | #f00 | Text color of .error and .errorlist class

Examples:

General form control:

<div class="field">
	<label class="field__label">Label</label>
	<input name="input">
	<div class="field__help-text"></div>
</div>

Form control inline button:

<div class="field">
	<div class="field__inline-submit">
		<input name="input">
		<button class="field__btn">Submit</button>
	</div>
</div>

Form control in two columns:

<div class="field">
	<div class="field__columns">
		<div class="field__column">
			<label class="field__label">Label</label>
			<input name="input">
		</div>
		<div class="field__column">
			<label class="field__label">Label</label>
			<input name="input">
		</div>
	</div>
</div>
Modifiers

.field__column_sm Change width in one column.

<div class="field">
	<div class="field__columns">
		<div class="field__column field__column_sm">
			<label class="field__label">Label</label>
			<input name="input">
		</div>
		<div class="field__column">
			<label class="field__label">Label</label>
			<input name="input">
		</div>
	</div>
</div>

Select

For <select> tag is necessary add a container with class .select

<div class="field">
	<label class="field__label">Label</label>
	<div class="select">
		<select name="select">...</select>
	</div>
	<div class="field__help-text"></div>
</div>
Modifiers

.select_disabled Select disabled style.

 <div class="select select_disabled">
	 <select name="select" disabled>...</select>
 </div>

.select_readonly Select readonly style.

 <div class="select select_readonly">
	 <select name="select" readonly>...</select>
 </div>

.select_is-multiple Select multiple style.

 <div class="select select_is-multiple">
	 <select name="select" multiple>...</select>
 </div>

Checkbox and Radio button

For create a checkbox or radio input import the file check-radio.sass in the file that compile your Sass and be sure you call it after the alabaster.sass file and before the Sass's files you use to build your web.

@import 'route-to-file/alabaster/alabaster'
@import 'route-to-file/alabaster/components/check-radio'
@import 'header'

Example:

<label class="check-field">
	<input class="check-field__input" type="checkbox">
	<span class="check-field__icon"></span>
	<span class="check-field__label">Text label</span>
</label>
<label class="radio-field">
	<input class="radio-field__input" type="radio">
	<span class="radio-field__icon"></span>
	<span class="radio-field__label">Text label</span>
</label>
Modifiers

.check-field_icon-right .radio-field_icon-right Changes the icon to the right.

<label class="check-field check-field_icon-right">
	<input class="check-field__input" type="checkbox">
	<span class="check-field__icon"></span>
	<span class="check-field__label">Text label</span>
</label>
<label class="radio-field radio-field_icon-right">
	<input class="radio-field__input" type="radio">
	<span class="radio-field__icon"></span>
	<span class="radio-field__label">Text label</span>
</label>

.check-field_box .radio-field_box Mixed style between general input and checkbox or radio button input.

<label class="check-field check-field_box">
	<input class="check-field__input" type="checkbox">
	<span class="check-field__icon"></span>
	<span class="check-field__label">Text label</span>
</label>
<label class="radio-field radio-field_box">
	<input class="radio-field__input" type="radio">
	<span class="radio-field__icon"></span>
	<span class="radio-field__label">Text label</span>
</label>

.check-field_disabled .radio-field_disabled Input disabled style.

<label class="check-field check-field_disabled">
	<input class="check-field__input" type="checkbox" disabled>
	<span class="check-field__icon"></span>
	<span class="check-field__label">Text label</span>
</label>
<label class="radio-field radio-field_disabled">
	<input class="radio-field__input" type="radio" disabled>
	<span class="radio-field__icon"></span>
	<span class="radio-field__label">Text label</span>
</label>

.check-field_readonly .radio-field_readonly Input readonly style.

<label class="check-field check-field_readonly">
	<input class="check-field__input" type="checkbox" readonly>
	<span class="check-field__icon"></span>
	<span class="check-field__label">Text label</span>
</label>
<label class="radio-field radio-field_readonly">
	<input class="radio-field__input" type="radio" readonly>
	<span class="radio-field__icon"></span>
	<span class="radio-field__label">Text label</span>
</label>

Number spinner

For create a number spinner input import the file number-spinner.sass in the file that compile your Sass and be sure you call it after the alabaster.sass file and before the Sass's files you use to build your web.

@import 'route-to-file/alabaster/alabaster'
@import 'route-to-file/alabaster/components/number-spinner'
@import 'header'
Variables

Name | Default | Description ------ | ------- | ----------- $number-spinner-height | 40px | Height of the number spinner $number-spinner-width | 94px | Width of the number spinner

Import number-spinner.js in your js code.

<script src="route-to-file/alabaster/js/number-spinner.js"></script>

Initialize numberSpinner plugin.

JS parameters

Name | Default | Description ------ | ------- | ----------- btnMinusSelector | .js-number-spinner-btn-minus | Selector button minus btnPlusSelector | .js-number-spinner-btn-plus | Selector button plus changeEnded | function | Event will be fired after number change onMaxValue | function | Event will be fired when number go to max limit onMinValue | function | Event will be fired when number go to min limit

Example:

<div class="js-number-spinner number-spinner">
	<button class="js-number-spinner-btn-minus number-spinner__btn" type="button">
		<svg class="number-spinner__svg">minus icon</svg>
	</button>
	<input class="number-spinner__input" type="number" value="10" min="0" max="20" step="5">
	<button class="js-number-spinner-btn-plus number-spinner__btn" type="button">
		<svg class="number-spinner__svg">plus icon</svg>
	</button>
</div>
$('.js-number-spinner').numberSpinner();
// or
$('.js-number-spinner').numberSpinner({
	changeEnded: function() {
		// Change event
	},
	onMaxValue: function() {
		// Max value event
	},
	onMinValue: function() {
		// Min value event
	}
});

Toggle

For create a toggle input import the file toggle.sass in the file that compile your Sass and be sure you call it after the alabaster.sass file and before the Sass's files you use to build your web.

@import 'route-to-file/alabaster/alabaster'
@import 'route-to-file/alabaster/components/toggle'
@import 'header'
Variables

Name | Default | Description ------ | ------- | ----------- $toggle-width | 80px | Width of the toggle $toggle-padding | 5px | Padding of the toggle $toggle-border | 1px | Border width of the toggle $toggle-circle-size | 30px | Size of the status circle

Example:

<label class="field-toggle">
	<input class="field-toggle__input" type="checkbox">
	<span class="field-toggle__container">
		<span class="field-toggle__circle"></span>
	</span>
</label>
Modifiers

.field-toggle__container_text Adds text YES and NO to the toggle.

<label class="field-toggle">
	<input class="field-toggle__input" type="checkbox">
	<span class="field-toggle__container field-toggle__container_text">
		<span class="field-toggle__circle"></span>
	</span>
</label>

Input file

For create a input file import the file file.sass in the file that compile your Sass and be sure you call it after the alabaster.sass file and before the Sass's files you use to build your web.

@import 'route-to-file/alabaster/alabaster'
@import 'route-to-file/alabaster/components/file'
@import 'header'

Import file-field.js in your js code.

<script src="route-to-file/alabaster/js/file-field.js"></script>

Create a new js FileField object.

JS parameters

Name | Default | Description ------ | ------- | ----------- inputSelector | .js-input-file | Selector to input file labelSelector | .js-file-text | Selector for element with dinamic text textLabel | Seleccionar archivo | Initial text for input

Example:

<label class="file-field">
	<input type="file" class="js-input-file file-field__input">
	<span class="js-file-text file-field__label">Seleccionar archivo</span>
	<span class="file-field__icon">icon</span>
</label>
new FileField();
// or
new FileField({
	inputSelector: '.js-new-input-file-selector';
	labelSelector: '.js-new-file-text-selector';
	textLabel: 'New text input';
});
Modifiers

.file-field_disabled Input disabled style.

<label class="file-field file-field_disabled">
	<input type="file" class="js-input-file file-field__input" disabled>
	<span class="js-file-text file-field__label">Seleccionar archivo</span>
	<span class="file-field__icon">icon</span>
</label>

.file-field_readonly Input readonly style.

<label class="file-field file-field_readonly">
	<input type="file" class="js-input-file file-field__input" disabled>
	<span class="js-file-text file-field__label">Seleccionar archivo</span>
	<span class="file-field__icon">icon</span>
</label>

Icons

The .icon class is a container for a svg icon.

Variables

Name | Default | Description ------ | ------- | ----------- $icon-default-size | 50px | Size of icon in mobile $icon-default-tablet-size | $icon-default-size | Size of icon in tablet and above $icon-svg-default-size | 35px | Size of svg icon in mobile $icon-svg-default-tablet-size | $icon-svg-default-size | Size of svg icon in tablet and above $icon-sm-size | 40px | Small size of icon in mobile $icon-sm-tablet-size | $icon-sm-size | Small size of icon in tablet and above $icon-svg-sm-size | 25px | Small size of svg icon in mobile $icon-svg-sm-tablet-size | $icon-svg-sm-size | Small size of svg icon in tablet and above $icon-lg-size | 90px | Large size of icon in mobile $icon-lg-tablet-size | $icon-lg-size | Large size of icon in tablet and above $icon-svg-lg-size | 50px | Large size of svg icon in mobile $icon-svg-lg-tablet-size | $icon-svg-lg-size | Large size of svg icon in tablet and above $icon-border-radius | 50% | Border radius of icon

Example:

<span class="icon">
	<svg class="icon__svg"></svg>
</span>
Modifiers

.icon_sm Small icon.

<span class="icon icon_sm">
	<svg class="icon__svg"></svg>
</span>

.icon_lg Large icon.

<span class="icon icon_lg">
	<svg class="icon__svg"></svg>
</span>

.icon_outline Remove the background color.

<span class="icon icon_outline">
	<svg class="icon__svg"></svg>
</span>

Color style

Alabaster bring 4 styles for icons: error info success and warning

Variables

Name | Default | Description ------ | ------- | ----------- $icon-error-background-color | #c00 | Background color error $icon-error-color | $white | Icon color error $icon-info-background-color | #666 | Background color info $icon-info-color | $white | Icon color info $icon-success-background-color | #009c00 | Background color success $icon-success-color | $white | Icon color success $icon-warning-background-color | #ca9500 | Background color warning $icon-warning-color | $white | Icon color warning

<span class="icon icon_error">...</span>
<span class="icon icon_info">...</span>
<span class="icon icon_success">...</span>
<span class="icon icon_warning">...</span>

Tables

The .table class is used on table tag.

Variables

Name | Default | Description ------ | ------- | ----------- $table-background-color | $white | Table background color $table-color | $black | Table text color $table-cell-border-color | lighten($black, 85%) | Table border color $table-cell-border-style | solid | Table border style $table-cell-border-width | 1px 0 0 | Table border width $table-cell-padding | 10px 15px | Cells padding $table-head-background-color | transparent | Table head background color $table-head-color | $table-color | Table head text color $table-head-cell-border-width | 0 0 2px | Table head border width $table-foot-background-color | transparent | Table foot background color $table-foot-color | $table-color | Table foot text color $table-foot-cell-border-width | 2px 0 0 | Table foot border width $table-row-striped-even-background-color | lighten($black, 95%) | Even row background color $table-row-striped-odd-background-color | $white | Odd row background color $table-row-hover-background-color | lighten($black, 90%) | Table row background color hover $table-row-hover-color | $black | Table row text color hover

Example:

<table class="table">
	<thead>
		<tr>
			<th>#</th>
			<th>First</th>
			<th>Last</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>1</td>
			<td>Value 1</td>
			<td>Value 2</td>
		</tr>
		<tr>...</tr>
	</tbody>
	<tfoot>
		<tr>
			<th>#</th>
			<th>First</th>
			<th>Last</th>
		</tr>
	</tfoot>
</table>
Modifiers

.table_bordered Add borders on all sides of table.

<table class="table table_bordered">
	...
</table>

.table_striped Add add zebra-striping to table.

<table class="table table_striped">
	...
</table>

.table_hover Enable hover state in table rows.

<table class="table table_hover">
	...
</table>

Responsive

Create responsive tables wrapping .table with .table-container

<div class="table-container">
	<table class="table">
		...
	</table>
</div>

Alert modal

Create an alert modal with handlebars js and featherlight

For create an alert modal import the files modal.sass and alert.sass in the file that compile your Sass and be sure you call it after the alabaster.sass file and before the Sass's files you use to build your web.

@import 'route-to-file/alabaster/alabaster'
@import 'route-to-file/alabaster/components/modal'
@import 'route-to-file/alabaster/components/alert'
@import 'header'
Variables

Name | Default | Description ------ | ------- | ----------- $modal-background-color | rgba($black, .7) | Modal overlay background color $modal-content-background-color | $white | Modal background color $modal-content-max-width | none | Max width modal content $alert-background-color | $white | Alert content background color $alert-max-width | 600px | Max width alert content

Import handlebars.js featherlight.js and alert.js in your js code.

<script src="route-to-file/handlebars.min.js"></script>
<script src="route-to-file/featherlight.min.js"></script>
<script src="route-to-file/alabaster/js/alert.js"></script>

Initialize showAlert plugin.

JS parameters

Name | Default | Description ------ | ------- | ----------- type | info | Alert type (error - info - success - warning) title | none | Alert title text | none | Alert text doneBtn | Aceptar | Button text done cancelBtn | Cancelar | Button text cancel loadedCallback | undefined | Event will be fired after modal loaded cancelCallback | undefined | Event will be fired when cancel button is clicked doneCallback | undefined | Event will be fired when done button is clicked

Example:

<script id="alert-modal" type="text/x-handlebars-template">
	<div class="alert">
		<button class="js-alert-btn-close btn btn_icon modal__btn-close" type="button">
			<svg class="btn__svg">...</svg>
		</button>
		<div class="alert__content">
			<div class="alert__header">
				<span class="icon icon_{{type}} alert__icon"><svg class="icon__svg">...</svg></span>
				<h3 class="alert__title">{{title}}</h3>
			</div>
			<p class="alert__text">{{{text}}}</p>
		</div>
		<div class="alert__action">
			{{#if cancelBtn}}
			<button class="js-alert-btn-cancel btn alert__btn">{{cancelBtn}}</button>
			{{/if}}
			<button class="js-alert-btn-done btn btn_{{type}} alert__btn">{{doneBtn}}</button>
		</div>
	</div>
</script>
$('#alert-modal').showAlert({
	type: 'error',
	title: 'Alert title',
	text: 'Alert text',
	cancelBtn: false,
	doneCallback: function () {
		// Done event
	}
});

Helpers

Alabaster include somes helpers to make easy sass.

Position

Provides a method for setting an element's positioning properties: position, top, right, bottom and left. Use a null value to skip an edge of the box.

Example:

.element
	@include position(absolute, 10px null null 1rem)

Size

Sets the width and height of the element.

Example:

.element
	@include size(100px, 2em)

Clearfix

Provides a way to include a clearfix for containing floats.

Example:

.element
	@include clearfix

Font smooth

Provides a way to controls the application of anti-aliasing when fonts are rendered.

Example:

.element
	@include font-smooth

Prefixer

Generates vendor prefixes.

Arguments

Name | Type | Description ------ | ------- | ----------- $property | string | Property to prefix $value | string | Value to use $prefixes | list | Vendor prefixes to output

Example:

.element
	@include prefix(appearance, none, webkit moz)

Column width

Provides a way to get the size of a column in percentage.

Example:

.element
	@include column-width(2)

Column offset

Provides a way to get the offset of a column in percentage.

Example:

.element
	@include column-offset(2)

Classes

Alabaster include some classes to help easily the construction of html.

Fit image

The .fit-image class add the property object fit = cover to <img> tag.

Example:

<figure>
	<img class="fit-image" src="image.jpg" alt="image">
</figure>

Off screen

The .off-screen class hides elements in the screen.

Example:

<section>
	<h1 class="off-screen">Section title</h1>
	<div>...</div>
</section>

Text align

The .text-center, .text-right and .text-left classes changes the text align.

Example:

<div>
	<p class="text-center">Some text aligned to the center</p>
	<p class="text-right">Some text aligned to the right</p>
	<p class="text-left">Some text aligned to the left</p>
</div>

Flex

Alabaster offers some classes to create grid flex easily.

The .flex class define a container with flex display.

Example:

<div class="flex">
	...
</div>

The .column-flex class change the direction from row to column.

Example:

<div class="flex column-flex">
	...
</div>

The .no-wrap-flex class change the wrap property from wrap to nowrap.

Example:

<div class="flex no-wrap-flex">
	...
</div>

The .justify-content-space-between class apply justify content = space between.

Example:

<div class="flex justify-content-space-between">
	...
</div>

The .justify-content-space-around class apply justify content = space around.

Example:

<div class="flex justify-content-space-around">
	...
</div>

The .justify-content-flex-start class apply justify content = flex start.

Example:

<div class="flex justify-content-flex-start">
	...
</div>

The .justify-content-center class apply justify content = center.

Example:

<div class="flex justify-content-center">
	...
</div>

The .justify-content-flex-end class apply justify content = flex end.

Example:

<div class="flex justify-content-flex-end">
	...
</div>

The .align-items-flex-start class apply align items = flex start.

Example:

<div class="flex align-items-flex-start">
	...
</div>

The .align-items-center class apply align items = center.

Example:

<div class="flex align-items-center">
	...
</div>

The .align-items-flex-end class apply align items = flex end.

Example:

<div class="flex align-items-flex-end">
	...
</div>

JS Plugins

Alabaster include some js plugins to help easily the interaction of html.

No scroll

This function allow lock the scroll of the page, import the file no-scroll.js in your js code.

<script src="route-to-file/alabaster/js/no-scroll.js"></script>
JS parameters

Name | Type | Description ------ | ------ | ----------- fixed | Boolean | Toggle overflow of the page

Example:

// Lock scroll page
noScroll(true);
// Unlock scroll page
noScroll(false);

Mobile menu

For implement menu mobile functionality import the files no-scroll.js and mobile-menu.js in your js code.

<script src="route-to-file/alabaster/js/no-scroll.js"></script>
<script src="route-to-file/alabaster/js/menu-mobile.js"></script>

Create a new js MobileMenu object.

JS parameters

Name | Description ------ | ----------- mobileNav | Selector for mobile menu openBtn | Selector for button that open menu closeBtn | Selector for button that close menu activeClass | Css class for mobile menu active onOpen | Event will be fired after menu open onClose | Event will be fired after menu close

Example:

new MobileMenu({
	mobileNav: '.js-mobile-menu',
	openBtn: '.js-mobile-menu-btn-open',
	closeBtn: '.js-mobile-menu-btn-close',
	activeClass: 'mobile-menu_active',
	onOpen: function () {
		// open event
	},
	onClose: function () {
		// close event
	}
});

Outdated browser

This js code verify the browser version and show an alert in case this are outdated or this are not supported.

Variables

Name | Default | Description ------ | ------- | ----------- $outdated-browser-background-color | $white | Alert background color $outdated-browser-text-color | $black | Alert text color $outdated-browser-btn-background-color | $black | Button background color $outdated-browser-btn-background-color-hover | lighten($black, 40%) | Button background color hover $outdated-browser-btn-text-color | $white | Button text color $outdated-browser-btn-text-color-hover | $white | Button text color hover

For implement functionality import the file outdated-browser.js in your js code.

<script src="route-to-file/alabaster/js/outdated-browser.js"></script>

Brought to you by the lovely folks at Axiacore