arcibaldo

Speed up your development with Arcibaldo: CSS, SCSS modules for flexbox layout, typography, buttons, geometry...

View project on GitHub

What you will find inside Arcibaldo?

├── css
│   ├── arcibaldo.css                  // Arcibaldo v.1 CSS
│   ├── arcibaldo.css.map               
│   └── arcibaldo.min.css              // Arcibaldo v.1 minified CSS 
├── LICENSE
├── package.json
├── README.md
└── scss
    ├── arcibaldo.scss                  // Arcibaldo v.1 SCSS
    ├── arcibaldo.variables.scss        // required: Core variables of Arcibaldo
    ├── _functions.scss                 // required: Core functions of Arcibaldo
    ├── mixins
    │   ├── _breakpoints.scss           // mixins for screen size and orientation breakpoints
    │   ├── _geometry.scss              // mixins for three shapes: square, rectangle, circle
    │   └── _size.scss                  // mixins for managing sizes
    ├── _mixins.scss                    // Arcibaldo - Import all mixins
    └── theme
        ├── _buttons.scss
        ├── _geometry.scss              
        ├── _layout-flexbox.scss        // Layout: Flexbox
        ├── _layout.scss                // Layout
        ├── _shadings.scss              
        ├── _spacing.scss               // Padding and margin
        └── _typography.scss

Arcibaldo SCSS

Installation:
$ npm install --save arcibaldo
Import all modules of Arcibaldo in one go:
// Arcibaldo
@import '~arcibaldo/scss/arcibaldo';
Import just what you need from Arcibaldo:
// Arcibaldo variables
@import '~arcibaldo/scss/arcibaldo.variables';

// Custom variables: will overwrite Arcibaldo default variables
$base-space-value: 10px;

// Required
@import '~arcibaldo/scss/functions';
@import '~arcibaldo/scss/mixins';

// Optional
@import '~arcibaldo/scss/theme/layout';
@import '~arcibaldo/scss/theme/layout-flexbox';
@import '~arcibaldo/scss/theme/spacing';
@import '~arcibaldo/scss/theme/typography';
@import '~arcibaldo/scss/theme/buttons';
@import '~arcibaldo/scss/theme/shadings';
@import '~arcibaldo/scss/theme/geometry';

1.0 - Layout

Keep your top level container wrapped in a .fix-container to make sure the flexed items do not exceed a certain max-width based on the value of $flex-fix-container-width (arcibaldo.variables.scss).

width / height based on percentages (%)
base values example
w 1 - 100 class=”w_1”
h 1 - 100 class=”h_1”

1.1 Layout: Flexbox

Containers Block level:
short long base example
rc row-container rc, row-container class=”rc”
cc col-container cc, col-container class=”cc”
Flex Line Wrapping:
short base modifiers example
flex_wrap flex wrap class=”flex_wrap”
flex_wrap-nowrap flex nowrap class=”flex_wrap-nowrap”
flex_wrap-reverse flex wrap-reverse class=”flex_wrap-reverse”
Items:
short base modifiers values example
flex_{n} flex   1 - 100 class=”flex_1”
flex_shrink_{n} flex shrink 1 - 100 class=”flex_shrink_1”
Axis Alignment:
short long base modifiers example
jc_fs justify-content_flex-start jc, justify-content fs, flex-start class=”jc_fs”
jc_fe justify-content_flex-end jc, justify-content fe, flex-end class=”jc_fe”
jc_c justify-content_center jc, justify-content c, center class=”jc_c”
jc_sb justify-content_space-between jc, justify-content sb, space-between class=”jc_sb”
jc_sa justify-content_space-around jc, justify-content sb, space-around class=”jc_sa”
Cross-axis Alignment

@todo: work in progress

2.0 - Spacing

Spacing is based on the value of $base-space-value (arcibaldo.variables.scss) and each spacing class (margin and padding) can be extended 50 times the value of $base-space-value.
Eg. Having a $base-space-value set to 2px ($base-space-value: 2px),the the maximum spacing will solve at the dimension of 100px .mb_50 will output margin-bottom: 100px

base modifiers values example
pt, pr, pb, pl,
p-horizontal, p-vertical
auto   class=”pt_auto”
p-all   1 - 50 class=”p-all_1”
p-horizontal   1 - 50 class=”p-horizontal_1”
p-vertical   1 - 50 class=”p-vertical_1”
pt   1 - 50 class=”pt_1”
pr   1 - 50 class=”pr_1”
pb   1 - 50 class=”pb_1”
pl   1 - 50 class=”pl_1”
mt, mr, mb, ml,
m-horizontal, m-vertical
auto   class=”mt_auto”
m-all   1 - 50 class=”m-all_1”
m-horizontal   1 - 50 class=”m-horizontal_1”
m-vertical   1 - 50 class=”m-vertical_1”
mt   1 - 50 class=”mt_1”
mr   1 - 50 class=”mr_1”
mb   1 - 50 class=”mb_1”
ml   1 - 50 class=”ml_1”

At the moment just a short syntax for spacing is implemented.


Contribute to Arcibaldo:

Any help is more than welcome, file a bug, contribute some code, or improve documentation.