• This repository has been archived on 12/Dec/2017
  • Stars
    star
    275
  • Rank 149,796 (Top 3 %)
  • Language
    CSS
  • License
    MIT License
  • Created over 8 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

沙拉是一个能够帮助你写出更加简洁、优雅的CSS的样式解决方案

Postcss-salad

Build Status Version

Postcss-salad 是一个基于 PostCSS 的 CSS 解决方案,它提供了一系列快捷的 at-rule 和默认语法声明来帮助你快速地搭建项目样式与类库,它只在调用时才输出代码,而不是直接提供 CSS 类库。
沙拉不仅提供了下一代css语法支持,还提供了基础的sass的语法、属性顺时针简写、rem填充、基础图形绘制、可定制样式的inline-svg以及bem类名自动转化等实用的功能。

Documents

Demo

input:

/* short property */
.box {
  position: fixed 0 0 *;
}
/* utils */
.ellipsis2 {
  @utils-ellipsis 3;
}
/* shape */
.circle-a {
  circle: 50px #ff0;
}

output:

.box {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
}
.ellipsis2 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.circle-a {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #ff0;
}

Usage

Add Postcss salad to your build tool:

npm install postcss-salad --save-dev

Node

require('postcss-salad').process(YOUR_CSS, { /* options */ });

PostCSS

Add PostCSS to your build tool:

npm install postcss --save-dev

Load Postcss salad as a PostCSS plugin:

postcss([
  require('postcss-salad')({ /* options */ })
]).process(YOUR_CSS, /* options */);

Gulp

Add Gulp PostCSS: to your build tool:

npm install gulp-postcss --save-dev

Enable Postcss salad within your Gulpfile:

var gulp = require('gulp');
var postcss = require('gulp-postcss');

gulp.task('css', function () {
  return gulp.src('./src/*.css').pipe(
    postcss([
      require('postcss-salad')({ /* options */ })
    ])
  ).pipe(
    gulp.dest('.')
  );
});

webpack

module.exports = {
  module: {
    loaders: [
      {
        test:   /\.css$/,
        loader: "style-loader!css-loader!postcss-loader"
      }
    ]
  },
  postcss: function () {
    return [require('postcss-salad')];
  }
}

options

沙拉里每一个特性都是依赖于对应的插件的,因此他们都有自己的配置。 你可以通过 features 属性类为每一个插件传入它的配置,假设某个特性传入的值为false,则该特性会被关闭:

example:

var options = {
  browsers: ['ie > 8', 'last 2 version'],
  features: {
    "bem": false, //pass boolean false can disable the plugin
    "inlineSvg": {
      "path": "src/svgs"
    }
  }
}

Plugins

Postcss-salad powered by the following plugins (in this order):

  • precss: a tool that allows you to use Sass-like markup in your CSS files
  • postcss-css-reset: reset style is dependent on normalize.css and combined with best practice.
  • postcss-utils: help you create functional fragments quickly via at-rules.
  • postcss-bem: implementing BEM as at-rules
  • postcss-calc: plugin to reduce calc()
  • postcss-initial: fallback initial keyword
  • postcss-inline-svg: reference an SVG file and control its attributes with CSS syntax.
  • postcss-short: lets you write styles more logically by extending shorthand properties in CSS.
  • postcss-shape: draw basic shape with specified syntax in css rule
  • node-pixrem: generates pixel fallbacks for rem units.
  • autoprefixer: parse CSS and add vendor prefixes to CSS rules using values from Can I Use

More Repositories

1

element

A Vue.js 2.0 UI Toolkit for Web
Vue
54,115
star
2

mint-ui

Mobile UI elements for Vue.js
Vue
16,570
star
3

node-interview

How to pass the Node.js interview of ElemeFE.
HTML
10,407
star
4

v-charts

基于 Vue2.0 和 ECharts 封装的图表组件📈📊
JavaScript
6,802
star
5

vue-amap

🌍 基于 Vue 2.x 和高德地图的地图组件
JavaScript
3,320
star
6

element-react

Element UI
JavaScript
2,832
star
7

vue-infinite-scroll

An infinite scroll directive for vue.js.
JavaScript
2,828
star
8

page-skeleton-webpack-plugin

Webpack plugin to generate the skeleton page automatically
JavaScript
2,748
star
9

cooking

👨‍🍳 更易上手的前端构建工具
JavaScript
1,948
star
10

node-practice

Node.js 实践教程
JavaScript
1,374
star
11

restc

A server-side middleware to visualize REST requests.
HTML
1,348
star
12

react-amap

基于 React 封装的高德地图组件。AMap Component Based On React.
JavaScript
1,031
star
13

vue-swipe

A touch slider for vue.js.
Vue
929
star
14

vue-desktop

A UI library for building admin panel website.
Vue
550
star
15

element-angular

Element for Angular
TypeScript
522
star
16

hire

寻找热爱生活,把世界变的更好的人
468
star
17

keynote

大前端分享会公开演示文稿
HTML
335
star
18

image-cropper

A image cropper for cropping user avatar, no dependencies.
JavaScript
311
star
19

vscode-element-helper

VSCode-Element-Helper is a VS Code package for Element-UI.
TypeScript
240
star
20

smart-gesture

这是一个小型手势组件,支持普通的方向手势和自定义图形手势,兼容PC端和移动端,可以非常方便的用它实现一些酷炫的手势操作。
JavaScript
238
star
21

vue-msgbox

A message box (like Sweet Alert) for vue.js.
JavaScript
236
star
22

bowl

🍚 static resources front-end storage solving strategy
JavaScript
227
star
23

style-guide

style guide for everyone
226
star
24

element-dashboard

element dashboard
Vue
222
star
25

weex-vue-starter-kit

weex starter kit in vue to use weexpack & weex both.(support hot-reload)
JavaScript
179
star
26

obsolete-webpack-plugin

🌈 A Webpack plugin generates a browser-side standalone script that detects browser compatibility based on `Browserslist` and prompts website users to upgrade it.
JavaScript
176
star
27

vue-toast-mobile

A mobile toast plugin for vue.js
HTML
144
star
28

eslint-config-elemefe

JavaScript
136
star
29

vue-img

hash2path wrapper for vue.js
JavaScript
117
star
30

mongodb-doc-cn

Mongodb 中文文档, 在线阅读 ->
101
star
31

Hachart

HaHa, this is a flowchart generator.
JavaScript
92
star
32

vue-popup

A popup mixin for vue.js
JavaScript
77
star
33

element-helper

🚀 Element-Helper is a Atom package for Element-UI.
JavaScript
75
star
34

crayfish

基于 CDN 的配置管理系统
JavaScript
58
star
35

webspoon

这是一个 Web 前端工程化的工具包
JavaScript
45
star
36

random

一个随机分组的小工具
HTML
44
star
37

ng-staticize

Staticize your angular template. Zero watcher and fast as template engine.
JavaScript
38
star
38

v-datepicker

基于Vue指令实现的一个日历选择器控件
Vue
33
star
39

clouding

前端「零机器」部署方案
32
star
40

WAI-ARIA-Practices

ARIA实践指南(中文版)
25
star
41

react-native-smart-gesture

smart-gesture for react-native.
JavaScript
24
star
42

image-cropper-touch

A image cropper for mobile device.
JavaScript
15
star
43

vue-smart-gesture

smart-gesture for vue.
JavaScript
15
star
44

vue-desktop-starter

A starter for vue-desktop.
JavaScript
13
star
45

hasaki

A file generator for easy writing your application.
JavaScript
8
star
46

react-smart-gesture

smart-gesture for react.
JavaScript
7
star
47

appCacheReload

JavaScript
5
star
48

element-migration-helper

CLI tool to aid in migration from Element-UI 1.x to 2.0
JavaScript
3
star
49

snapshot

JavaScript
2
star
50

pocket-noodles

A WEB API CACHING SOLUTION
JavaScript
2
star
51

sip

1
star