Giter VIP home page Giter VIP logo

rin's Introduction

Rin 5

A lean HTML & SASS boilerplate for better front-end coding

https://sanographix.github.io/rin/

Getting Started For Project

Required Components

Set Up

1) Clone Rin:

$ git clone [email protected]:sanographix/rin.git test-repo
$ cd test-repo
$ npm install

3) Run rin:

$ npm start

4) πŸŽ‰


Directory

While you are running Rin, It is watching directories under src/. Put your project’s templates(ejs), scss, js, images, files in it.

templates/, scss/, js/, images/ files will compile and output to build/.

rin/
┣┳ src/
┃┣ templates/
┃┣ scss/
┃┣ js/
┃┗ images/
┃
β”—β”³ build/
 β”—β”³ index.html
  ┣ css/
  ┣ js/
  β”— images/

Templates

Rin supports EJS template. When you edit and save .ejs files under src/templates/pages, they will output as .html to build/ directory.

Template tags

site.json

Put variables which use for every pages.

Example:

{
  "siteName": "Example Site",
  "siteRootUrl": "http://example.com/",
  "ogImageUrl": "http://example.com/images/og-image.jpg",
  "fbAppId": "000000000",
  "twitterSite": "@sanographix",
  "googleAnalyticsId": "UA-00000000-1"
}

index.ejs

To use variables for particular single page, put variables into <% var %> at each page.

Example:

<% var
pageTitle = "Toppage";
pageDescription = "Example site";
%>
<head>
	<title><%= pageTitle %> - <%= siteName %></title>
	<meta property="og:description" content="<%= pageDescription %>" />
</head>

Result:

<head>
	<title>Toppage - Example Site</title>
	<meta property="og:description" content="Example site" />
</head>

Images

Rin optimizes gif, jpg, png, svg images automatically using imagemin. Each files will output to build/images/.

CSS

Rin supports scss.

sass
┣ style.scss // It imports under /lib files
β”— lib
   ┣ _core.scss // Edit this files mostly
   ┣ _button.scss // Buttons
   ┣ _common.scss // Common components like `body` or `a` etc
   ┣ _grid.scss // Responsive grid system
   ┣ _normalize.scss // Normalize
   β”— _variable.scss // Color variables

_normalize.scss

-> normalize.css

_grid.scss

It helps you make simple grid system. Like this:

3-column

<div class="l-container">
  <div class="l-row">
    <div class="l-span4">
      Column A
    </div>
    <div class="l-span4">
      Column B
    </div>
    <div class="l-span4">
      Column C
    </div>
  </div>
</div>

2-column

<div class="l-container">
  <div class="l-row">
    <div class="l-span6">
      Column A
    </div>
    <div class="l-span6">
      Column B
    </div>
  </div>
</div>

_button.scss

Example:

<a class="btn">Normal button</a>
<a class="btn btn-light">Light color button</a>
<a class="btn btn-primary">Primary button!</a>
<a class="btn btn-lg">Large button!!</a>

_variable.scss

Color variables and breakpoints of browser window width.

Media queries breakpoints

  • mq-xs
    • Smartphone (<480px)
  • mq-sm
    • Smartphone, Tablet (>576px)
  • mq-md
    • Tablet (>768px)
  • mq-lg
    • Medium desktop display (>992px)
  • mq-xl
    • Large desktop display (>1200px)
  • mq-xxl
    • Extra large desktop display (>1600px)

Example:

header h1 {
    font-size: 100%;
    @media #{$mq-xs} {
        font-size: 80%;
    }
    @media #{$mq-sm} {
        font-size: 150%;
    }
    @media #{$mq-md} {
        font-size: 200%;
    }
    @media #{$mq-lg} {
        font-size: 300%;
    }
}

JS

js files under src/js/ will output to build/js/scripts.js with concatenated and compressed.

Local Server

Rin runs local server by using BrowserSync. Its default URL is http://localhost:3000/. It reloads your browser automatically when you update a file.

Deploy to gh-pages branch

Run git subtree command.

git subtree push --prefix build/ origin gh-pages

Author

Showkaku Sano (sanographix)

Graphic designer from Kyoto (Japan).

License

MIT

rin's People

Contributors

sanographix avatar alphex avatar hassaananjum avatar hirdyansh05 avatar motoso avatar

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.