Socket
Socket
Sign inDemoInstall

sugarss

Package Overview
Dependencies
11
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    sugarss

Indent-based CSS syntax for PostCSS


Version published
Weekly downloads
1.1M
decreased by-20.93%
Maintainers
1
Install size
1.51 MB
Created
Weekly downloads
 

Package description

What is sugarss?

SugarSS is a syntax parser for PostCSS that allows you to write your CSS in a more minimalistic and readable format, similar to Sass or Stylus. It simplifies the CSS syntax by removing braces, semicolons, and enabling indentation-based scoping.

What are sugarss's main functionalities?

Indentation-based Syntax

SugarSS allows you to write CSS rules using indentation instead of braces, making the CSS more readable and concise.

.one
  color: blue
  .two
    color: red

Semicolon-free

You can omit semicolons in SugarSS, simplifying the syntax further and making it cleaner.

.example
  background: white
  color: black

Compatibility with PostCSS

SugarSS is compatible with PostCSS, allowing you to use it alongside a wide range of PostCSS plugins for added functionality.

postcss([ require('sugarss') ]).process(css, { parser: 'sugarss' })

Other packages similar to sugarss

Readme

Source

SugarSS Build Status

Indent-based CSS syntax for PostCSS.

a
  color: blue

.multiline,
.selector
  box-shadow: 1px 0 9px rgba(0, 0, 0, .4),
              1px 0 3px rgba(0, 0, 0, .6)

// Mobile
@media (max-width: 400px)
  .body
    padding: 0 10px

As any PostCSS custom syntax, SugarSS has source map, Stylelint and postcss-sorting support out-of-box.

It was designed to be used with PreCSS. But you can use it with any PostCSS plugins or use it without any PostCSS plugins.

Sponsored by Evil Martians

Syntax

SugarSS MIME-type is text/x-sugarss with .sss file extension.

Indent

We recommend 2 spaces indent. However, SugarSS autodetects indent and can be used with tabs or spaces.

But it is prohibited to mix spaces and tabs in SugarSS sources.

Multiline

SugarSS was designed to have intuitively multiline selectors and declaration values.

There are 3 rules for any types of nodes:

// 1. New line inside brackets will be ignored
@supports ( (display: flex) and
            (display: grid) )

// 2. Comma at the end of the line
@media (max-width: 400px),
       (max-height: 800px)

// 3. Backslash before new line
@media screen and \
       (min-width: 600px)

In selector you can put a new line anywhere. Just keep same indent for every line of selector:

.parent >
.child
  color: black

In declaration value you can put new line anywhere. Just keep bigger indent for value:

.one
  background: linear-gradient(rgba(0, 0, 0, 0), black)
              linear-gradient(red, rgba(255, 0, 0, 0))

.two
  background:
    linear-gradient(rgba(0, 0, 0, 0), black)
    linear-gradient(red, rgba(255, 0, 0, 0))

Comments

SugarSS supports two types of comments:

/*
 Multiline comments
 */

// Inline comments

There is no “silent” comments in SugarSS. Output CSS will contain all comments from .sss source. But you can use postcss-discard-comments for Sass’s silent/loud comments behaviour.

Rule and Declarations

SugarSS separates selectors and declarations by :\s or :\n token.

So you must write a space after property name: color: black is good, color:black is prohibited.

Text Editors

We are working on syntax highlight support in text editors.

Right now, you can set Sass or Stylus syntax highlight for .sss files.

Usage

SugarSS to CSS

Just set SugarSS to PostCSS parser option and PostCSS will compile SugarSS to CSS.

Gulp:

var postcss = require('gulp-postcss');
var sugarss = require('postcss-scss');
var rename  = require('gulp-rename');

gulp.task('style', function () {
    return gulp.src('scr/**/*.sss')
        .pipe(postcss(plugins, { parser: sugarss }))
        .pipe(rename({ extname: '.css' }))
        .pipe(gulp.dest('build'));
});

Webpack:

module: {
    loaders: [
        {
            test:   /\.sss/,
            loader: "style-loader!css-loader!postcss-loader?parser=sugarss"
        }
    ]
}

SugarSS to SugarSS

Sometimes we use PostCSS not to build CSS, but to fix source file. For example, to sort properties by postcss-sorting.

For this cases, use syntax option, instead of parser:

gulp.task('sort', function () {
    return gulp.src('scr/**/*.sss')
        .pipe(postcss([sorting], { syntax: sugarss }))
        .pipe(gulp.dest('src'));
});

CSS to SugarSS

You can even compile existed CSS sources to SugarSS syntax. Just use stringifier option instead of parser:

postcss().process(css, { stringifier: sugarss }).then(function (result) {
    result.content // Converted SugarSS content
});

Keywords

FAQs

Last updated on 09 Mar 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc