Giter Site home page Giter Site logo

maykinmedia / microscope-sass Goto Github PK

View Code? Open in Web Editor NEW
4.0 6.0 0.0 379 KB

Sass microframework for building scoped user interfaces.

License: MIT License

JavaScript 1.30% Shell 0.08% SCSS 15.22% HTML 83.40%
sass mixins microframework scss lightweight

microscope-sass's Introduction

🔬 Microscope

Sass microframework for building scoped user interfaces.

Microscope is a microframework with a light footprint (0kb by default) which only applies styling to explicitly selected elements* (by you) based on highly configurable defaults.

0kb footprint

Microscope only exposes functions, mixins and variables (so no default styling*). CSS is only generated if needed.

Explicitly selected elements

Because no default styling is present, Microscope works well in combination with existing styling or other libraries.

Highly configurable

Microscope contains a large amount of settings (with sane defaults) which configure the created CSS code. Many settings have variations and/or optional breakpoint specific overrides which allow for more specific configurations. The settings can be specified in a settings file which acts as a digital representation of your style guide.

* With the exception of the wysiwyg and table mixins, which applies formatting to children automatically (only if called).

Install

Install with npm

npm i microscope-sass --save

Webpack

To use Microscope with webpack, install and configure sass-loader.

Webpack style import:

@import '~microscope-sass/lib/<library>';  // Import single library (recommended).
@import '~microscope-sass';                // Import everything at once.

Eyeglass

For historic reasons, the Eyeglass import is referenced as "microscope" insead of "microscope-sass".

Microsope supports Eyeglass in which case it can be referenced as "microscope".

Eygeglass style import:

@import 'microscope/lib/<library>';  // Import single library (recommended).
@import 'microscope';                // Import everything at once.

includePaths

Add "node_modules/" to the includePaths setting of you sass environment.

...
includePaths: ["node_modules/"],
...

includePaths style import:

@import 'microscope-sass/lib/<library>';  // Import single library (recommended).
@import 'microscope-sass';                // Import everything at once.

Note: Further documentations assumes a webpack installation and webpack style imports.

Usage

Configuration

Adjust settings_sample.scss based on your needs, note that all options are optional and unnecessary options can be omitted and removed.

Save the settings file and make sure to include it as the first file in you main .scss entrypoint.

@import 'settings';

Libraries

Microscope exposes the following libraries, please refer to their documentation functions, mixins and variables are exposed.

Importing a single library (preferred)

In any of your (nested) .scss files, import the libraries you need. The libraries will use your custom settings if set.

@import '~microscope-sass/lib/grid';

Import everything at once

It's also possible to import all libraries at once.

@import '~microscope-sass';

Applying styles

Microscope is designed to help styling isolated bits of HTML. The recommended use is to target class selectors so styles are remain scoped and don't leak out to other places.

@import '~microscope-sass/lib/color';
@import '~microscope-sass/lib/typography';

.header__title {
    @include h1;
    @include color-primmary;
}

A special wysiwyg mixin is availabe (via the typography library to automatically apply elements based on their tag name. It's recommended to only use this when the internal structure is unknown (for instance when styling the output of a wysiwyg editor).

@import '~microscope-sass/lib/typography';

.wysiwyg {
    @include wysiwyg;
}

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Author

Maykin Media

License

Copyright © 2019 Maykin Media Licensed under the MIT license.

microscope-sass's People

Contributors

svenvandescheur avatar sergei-maertens avatar dependabot[bot] avatar

Stargazers

 avatar Bart van der Schoor avatar Matías Iturburu avatar Alex de Landgraaf avatar

Watchers

Matías Iturburu avatar Joeri Bekker avatar James Cloos avatar  avatar  avatar  avatar

microscope-sass's Issues

(global) default variables machinery does not work with @use

Sass has introduced @use and @forward to deal with modules, and are planning on phasing out @import. On major side-effect of this is that @use/@forward apply namespaces. The mixins in microscope-sass do not properly work with this, as the default variables can no longer be globally overridden.

It seems that the whole architecture of using sass-module level 'global' defaults for variables and defining overrides in your own project will no longer work when @import is no longer supported.

See:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.