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

meow-boilerplate

v2.0.2

Published

It's just a little Meow Boilerplate for your next Project

Downloads

542

Readme

  • :speech_balloon: Intro
  • :package: Dependencies
  • :rocket: Getting Started
  • :triangular_flag_on_post: Commands
  • :bento: Technologies used
  • :wrench: Structure
  • :hammer: Build
    • :art: Build CSS
    • :white_check_mark: Build Structure
    • :rainbow: Build JS
  • :page_facing_up: License
  • :penguin: Author

:speech_balloon: Intro

"Meow Boilerplate" is a toolkit designed to support mainly the construction of frontends. Anyone looking for a colorful mixture of prefabricated elements, as one would expect from bootstrap and co, will not be happy with Meow. Here rather the methods are offered to those elements on a simple way to generate and expand.

Around the CSS part, there are still many automatic functions installed that help the developer. For example, to generate image assets and distribute, to build HTML mockups, to make sprites to generate fallbacks for SVG files. That's why I also avoid the term framework.

If you want to have a more lightweight and cleaner version, try Light Boilerplate

As well as a template for creating README.md. Or directly to repo.

:package: Dependencies

:top: back to top

:rocket: Getting started

Npm&Yarn install:

#Nostalgic
npm install meow-boilerplate

#Hipster
yarn add meow-boilerplate

Then you need to delete yarn.lock or package-lock.json and package.json. After that cd node_modules/meow-bilerplate and extract all files and folders into your project root directory. Configurate package.json and config.json files according to your preference. And just npm install or yarn.

Clone the repo:

Clone the repo to get all source files as they are available on Github:

git clone https://github.com/redeagleap/meow-boilerplate.git

cd meow-boilerplate/

And then install NPM-Modules via:

#Nostalgic
npm install

#Hipster
yarn

This install the required node_modules.

Nice, now your project is ready for battle, and you just have to write your code, and not spend several hours each time setting up each new project. Enjoy!

:top: back to top

:triangular_flag_on_post: Commands

With Webpack you have to use NPM Script Commands

| Action | Npm | Yarn | |:------------------------------------------------------------------------------------------- |:--------------------:|:-----------------:| | Intialize your Project and the Sass Documentation (/sassdocs/) | npm run init | yarn run init | | Main development task with BrowserSync and Webpack | npm run dev | yarn dev | | Minify JS, Images, CSS. Is for a automated Build Process, comes after a Gulp Init. | npm run build | yarn build | | Rebuild all JS Files except the Application JS File | npm run scripts | yarn scripts | | Rebuild all Image Files for CSS, copy it to distribution, build Bitmap- and Vector Sprites. | npm run uiimages | yarn uiimages | | Copy all Imagefiles for Documentusage. | npm run htmlassets | yarn htmlassets | | Copy all or Generate the Template Files. | npm run template | yarn template | | Generate Favicons and the HTML Snippet (generated Files you will find in src/.system/) | npm run favicon | yarn favicon |

:top: back to top

:bento: Technologies used

  • ES2017 - support through compiler Babel.

  • Node - is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code outside of a browser.

  • Cypress - is a fast, easy and reliable testing for anything that runs in a browser.
  • Sass - is the most mature, stable, and powerful professional grade CSS extension language in the world.

  • Sassdoc - is a documentation system to build pretty and powerful docs in the blink of an eye.

  • PostCSS - is a tool for transforming CSS with JavaScript.

  • Critical - extracts & inlines critical-path (above-the-fold) CSS from HTML.

  • Gulp - is a toolkit for automating painful or time-consuming tasks in your development workflow.

  • Webpack - is a bundler for modules.

  • Imagemin - minify PNG, JPEG, JPG, GIF and SVG images.

  • Uglify - is a JavaScript parser, minifier, compressor and beautifier toolkit.

  • BrowserSync - is a time-saving synchronised browser testing.
  • ESlint - is to provide a pluggable linting utility for JavaScript.

  • HTMLHint - is a Static Code Analysis Tool for HTML.

  • Stylelint - is a mighty, modern linter that helps you avoid errors and enforce conventions in your styles.

  • Prettier - is an opinionated code formatter.

  • Editorconfig - helps developers define and maintain consistent coding styles between different editors and IDEs.

  • Git - is a distributed version control system designed to handle everything from small to very large projects.

:top: back to top

:wrench: Structure

In the directory src/ is the source code, so that our working directory. In dist/ directory that should not work, therefore, only if it is absolutely necessary.

The Gulpfile is modularized and ES8 Compatible (with Babel.js), you will find all Tasks in the gulpfile/ directory. It is now easier for you to add additional Tasks, without touching the main Gulpfile (die Main Gulpfile is only a Loader).

SRC Folderstructure:

src/
├── .system/                          => Internal System Files
├── fonts/                            => Font Files
├── framework/                        => Sass Framework
├── images/                           => All Images
|   ├── bitmapSingle-assets           => Single Bitmap Images
|   ├── bitmapSprite-assets           => Images for Bitmap Sprites
|   ├── htmlimages                    => Content Images (`<img>`)
|   ├── vectorSingle-assets           => Single Vector Images
|   └── vectorSprite-assets           => Vector Images for Vector Sprites
├── js/                               => JS Files (e.g. main.js)
├── scripts/                          => Script files that are not installed
├── structure/                        => Source Files for Copy (e.g. Template Files for a WP Theme)
├── template/                         => Source Files for a Template Compiler (Pug / Twig)
├── style/                            => Styling Source Files

If you are not happy with the structure of the src/ folder, you can customize it. In the config.json must also be entered the new paths.

The Template / Structure directories even a short explanation. If an HTML compiler like pug or twig used the files from the template/ directory are used. If the compiler is disabled, the structure/ directory used. For example, you can put the files there a Wordpress template, these are then copied with a change in the src/ directory.

The dist/ folder is created after initialization (npm run init) of the project. All compiled and copied files of the src/ Folders land there.

Dist Folderstructure:

dist/
├── assets/                 => All Assets
|   ├── css/                => CSS Files
|   ├── fonts/              => Font Directory
|   ├── js/                 => Javascript Files
|   └── img/                => Background Image Assets
|       ├── system/         => Images like Favicons
|       ├── bitmaps/        => Bitmap Images
|       └── svgfiles/       => Vector Images
├── images/                 => Content Images

If you therefore should not be satisfied, you can change the structure in the config.json. When you change, delete the dist/ Folder, than run the Init Task.

:top: back to top

:hammer: Build

:art: Build CSS

Class names that are generated by "Meow", use the BEM syntax. BEM is one of the easiest ways to write Object Oriented CSS . Surely you can build a lot more delicate with Smacss, but should not forget that the issue is simply a principle of object-oriented programming here. One should therefore not make a religion out of the topic - the final product will always be CSS with all its drawbacks.

The Develeloper is free to decide whether he wants his class named after the BEM build syntax, in which case you can rely on the BEM mixins, thus obtaining a central node to make global modifications to the syntax.

.root__child => Element
.root--modifier => Modifier
.root---instance => Instance

Instance is similar to a modifier, with the difference that the styles of the parent element are applied. The instance can then be expanded with additional Styles.

By default BEM elements marked with a double underscore __ and BEM Modifier with a double hyphen --, Instances with a tripple hyphen ---. Who does not agree, this may change the Sass Setup file (src/framework/_defaults.scss) on the by adjusting the $meow-bem Map accordingly.


The necessary files can be found under src/framework/. Those who want to can extend the framework for specific projects.

Framework Structure


To generate the CSS file, you use the main.scss from the style directory (src/style/). But first the structure:

Styling Structure

You not need to worry about CSS3 prefixes the gulp-autoprefixer will insert it on any Compile.

Loader File With the _loader.scss file, all required files are loaded. The order is already given proof should not be changed.

Setup File Almost all settings can be changed and extended over _setup.scss (find under src/style/).


We've outsourced the Scss Grid Framework in his own NPM Package to use it in different environments You can find it here: https://github.com/davidhellmann/baukasten-grid Or directly to the Readme

To modify you settings you must open the src/style/app/_______settings/_settings.breakpoints.scss and there you can change what you want.

The dafaults look like this:

// Settings
$bk-grid-settings-custom: (
  // You want to use CSS Grid?
  // @Boolean
  // default: true
  cssgrid: true,

  // Your Project must support older browsers? No Problem, we've a Fallback (flexbox) here!
  // @Boolean
  // default: true
  cssgrid-fallback: true,

  // You want to use Flexbox only? Also no Problem! But you must set the "cssgrid-fallback" and "cssgrid" to false.
  // @Boolean
  // default: false
  flexboxgrid: false,

  // This add some CSS Styleing to the "section", "row" and "col" classes.
  // @Boolean
  // default: false
  testing: false,

  // Naming Conventions? No Problem. You can choose you prefix!
  // @String
  // default: 'o-'
  prefix: 'o-',

  // Units are for Paddings and Margins. All Paddings an Margins are Fluid.
  // That means that on the smallest breakpoint the Padding on each col side
  // is: gutter * gutter-min-factor (8px * 1) and on the biggest breakpoint it
  // is: gutter * gutter-max-factor (8px * 2)
  // For Margins top it is the same with the Vertical factors.
  units: (
    gutter: 8px,
    gutter-min-factor: 1,
    gutter-max-factor: 2,
    gutter-min-vertical-factor: 1,
    gutter-max-vertical-factor: 2
  ),

  // Class Creation
  // Not every projects need all this offset / push / pull classes. You decide!
  // @Boolean
  // default: true
  offset-classes: true,
  push-classes: true,
  pull-classes: true,

  // Disbale Padding Horizontal for Sections. Rows. Cols
  // @Boolean
  // default: false
  disable-padding-horizontal: false,

  // Breakpoints must have at least a "min" and a "max". The other Breakpoints as u like
  // We use all the time "min-width".
  // Cols are how many cols can have a row on that specific breakpoint.
  breakpoints: (
    min: (from: 320px, cols: 6, create-classes: true),
    xs:  (from: 400px, cols: 6, create-classes: true),
    s:   (from: 600px, cols: 12, create-classes: true),
    m:   (from: 800px, cols: 12, create-classes: true),
    l:   (from: 1000px, cols: 24, create-classes: true),
    max: (from: 1440px, cols: 24, create-classes: true)
  )
);

:top: back to top

:white_check_mark: Build Structure

To generate HTML files, for example, to build a prototype, you can use HTML compiler like Pug or Twig. Pug and Twig differ less in their features, more in the syntax. The compiler will but set the project start (can also be completely disabled).

When active, the generator is in the src/ directory template/ directory integrated, there is also some basis are files (example with Twig).

Important

By default the compiler is disabled. To switch from html sructure to Twig you can do next steps:

  • In config.json move to template.compiler and switch false on true;
  • In webpack.config.base.babel.js comment HtmlWebpackPlugin call:
  // comment this block of code
  new HtmlWebpackPlugin({
    filename: 'index.html',
    template: utils.meowConf.src.structure + 'index.html',
    inject: true,
    hash: false,
    minify: {
      removeComments: true,
      collapseWhitespace: true,
      removeAttributeQuotes: false,
      minifyCSS: true,
      minifyJS: true,
    },
    chunksSortMode: 'dependency',
  }),

Files in the root of the template directory are compiled to HTML files. In parts/ are larger template blocks as the header and the block to load the script files. In templates/ directory contains Main Templates, as a basis for Child Templates in the root.

The compiler will only work with the data of the template/ directory


If you work for example on a WordPress template, the compiler would there rather inappropriate, because you actually have to copy only those files. To stay with the example of the Wordpress template, all the files for the template, added to the structure directory. Gulp will copy these files when changing to the appropriate directory.

The Compiler is this, if not already, be switched off in the config.json (template.compiler). Gulp-Watch will then monitor the Structure directory (src/structure/) on changes to the files .


:top: back to top

:rainbow: Build JS

In src/js/ directory is the main.js file (can be renamed). That is our main file events and scripts are controlled with Javascript. The file passes through a Gulp task, all in addition ESLint also the advantage that you can attach partials.


To use JS files, they must first be processed with Gulp. JS files are then either in the JS directory dist/assets/js/ copied or they are combined and copied to the JS directory.

In the config.json you will find the following block:

Everything under jsCopy will be simply copied, under jsCombine identifies this files for the Combination. When you include new JS Files start the rebuild process:

gulp rebuild:js

:top: back to top

:page_facing_up: License

This project is licensed under the MIT License - see the LICENSE file for details.

:top: back to top

:penguin: Author

Meow Boilerplate made with love.

---------------------------------------

Author : Alexander Prisyazhnyuk

Email : [email protected]

Github : https://github.com/redeagleap/meow-boilerplate.git

forthebadge

:top: back to top