Git Product home page Git Product logo

concise-cli's Introduction

Code Climate Gem Version

Important: This project is deprecated and there is no plans to support it in the future.

Concise is a lightweight, front-end framework that provides a number of great features without the bloat. Concise is built based on Object-Oriented CSS principles and keeps semantics in mind to provide a small learning curve, and a high level of customization.

Installation Instructions

Add this line to your application's Gemfile:

gem 'concisecss', '~> 2.0.0'

And then execute:

$ bundle

Or install it yourself as:

$ gem install concisecss

Usage

Not every single project you are working needs all of the Concise JavaScript files. You can update your application.js with the files you need

 //= require concisecss/navigation
 //= require concisecss/non-responsive
 //= require concisecss/naver
 //= require concisecss/dropdown

To add the CSS just require

 *= require concise

If you intend to extend or override Concise, you might want to create an override file. For example: app/assets/stylesheets/custom.scss and then import concise

 @import "concise";

Documentation

What would a project be without great documentation? Concise has documentation for everything that is included in the framework. If you see something that is missing or incorrect, don't hesitate to open up an issue on our GitHub repo.

Check out our documentation here: http://concisecss.com

Changelog

You can keep up-to-date with the changes that we have made via our releases page.

Versioning

Concise is currently maintained under the Semantic Versioning guidelines.

Elsewhere

Like Concise on Facebook Follow Concise on Twitter

License

Code released under the MIT license. Documentation released under Creative Commons.

concise-cli's People

Contributors

keenanpayne avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

thinkoodle

concise-cli's Issues

Dynamic normalization

This is just an idea, it looks interesting but might have unintended consequences.

UPDATE: This might be part of the new Concise CSS Preprocessor. Not in the current Concise CSS framework.

UPDATE 2: See first comment.


Normalization styles consume unnecessary space in stylesheets of simple websites. For example, the current minified file of Concise CSS (v4.0.1) weights 12.4 KB, and a big part of those styles are to normalize form elements; Most of the time, simple websites don't have forms on them, so the form normalization styles are unnecessary.

The usual way to prevent the pollution of stylesheets is to include just the files that we need, but often, a single file contains already several unnecessary rules.

This idea brings a new option. Instead of including a normalization file, a normalization property is used, providing a target normalization as a value.

Benefits:

  • Since the normalization rules are now provided by the compiler, the developer won't need to install the concise.css library. And as a consequence, they won't require to include any file. Writing just the project styles will do the job.
  • Lightweight stylesheets.

Possible problems:

  • Confusion.
  • Increased complexity when defining normalization rules in the compiler.
  • Nested selectors might have problems. The normalization styles should only apply to a single element.

Considerations:

  • Since the user will probably want to override the normalization rules, the compiler will need to delete duplicates inside each rule. Where the user defined rules have priority over the normalization ones.

Example 1:

The following example might work, but there is repetition between the selector and the property value.

input {
  normalize: input;
  // My styles here
}

h1, h2, h3, h4, h5, h6 {
  normalize: heading;
  // My styles here
}

h3 {
  normalize: h3;
  // My styles here
}

Example 2:

The following example includes a different approach using a pseudo-selector:

input:normalize {
  // My custom styles here
}

h1, h2, h3, h4, h5, h6 {
  &:normalize {
    // My custom styles here
  }
}

h3:normalize {
  // My custom styles here
}

In both cases the custom rules and the normalization rules would be merged and duplicated removed.

Implement type scale as plain number

Example:

.smaller {
    // Smaller size in the scale
    font-size: 1;
}

.heading {
    // Bigger size in the scale
    font-size: 4;
}

Problems:
How we should define the ratio that will generate the scale.

Replace Sass

It would be more flexible for custom features and probably more efficient to completely replace Sass with Post CSS plugins.

Add file watcher

Add a -w flag to watch for files, by default, it should watch **/*.scss files, but it should accept a different value too.

Add pe and pr units

The pr unit is easy to implement, but the pe will probably require setting manually the parent font-size.

Probably something like 24/16pe where 24 is the size in pixels and 16 the font-size of the parent. 24pe will assume the font-size of the parent as the same of the root element.

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.