GithubHelp home page GithubHelp logo

streamich / css-constructor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from siddharthkp/css-constructor

0.0 2.0 0.0 976 KB

๐Ÿ’„ CSS constructor for React components

Home Page: https://codesandbox.io/s/M8yElMGqm?module=wRo98&hidenavigation=1

License: MIT License

JavaScript 99.98% HTML 0.02%

css-constructor's Introduction

CSS constructor for React

ย 

Every React component gets an inbuilt javascript constructor for functional logic.

Introducing the css constructor for styling!

ย  ย 

import React from 'react';
import css from 'css-constructor';                  // ๐Ÿ‘ถ Super tiny: only 1.2K gzipped!

export default class Hello extends React.Component {

    /* javascript constructor */
    constructor (props) {
        super(props);
    }

    /* css constructor */                           
    @css`                                           // ๐Ÿ”’ Isolated and co-located
        font-size: 16px;                            
        text-align: center;                         // ๐ŸŽ€ Supports the entirety of CSS

        color: {this.props.color};                  // ๐Ÿ”ฅ Use props in css

        display: flex;                              // ๐Ÿ’ป Built in vendor prefixing

        &:hover {                                   // ๐ŸŒ€ Pseudo selectors
            color: #FFF;
        }

        img {                                       // ๐Ÿ‘ช Nested css
            border-radius: 50%;
        }
        #handle {
            margin-top: 20px;
        }

        @media (max-width: 600px) {                 // ๐Ÿ“ฑ Media queries support
            & {font-size: 18px;}
        }
    `

    render () {
        return (<div>                               // ๐Ÿ”ผ Attaches class to the highest element
            <img src="https://github.com/siddharthkp.png"/>
            <div id="handle">@siddharthkp</div>
        </div>)
    }
};

// <Hello color='papayawhip'/>

--

Other features

๐Ÿ™‹ Uses classes instead of inline styles

๐Ÿ”ง Editable in developer tools

๐Ÿ‘ถ Super tiny: only 1.2K gzipped!

๐Ÿ’„ Official library emoji

Coming soon

๐ŸŒ server side rendering

--

Usage

  1. npm install css-constructor --save

  2. import css from 'css-constructor'

  3. Add a @css block just before the render function (important)

  4. Add transform-decorators-legacy as the first plugin in your .babelrc (already downloaded with ๐Ÿ’„).

If you are not familiar with babel plugins you can follow the detailed instructions here.

Or, if you would prefer using ๐Ÿ’„ without adding the babel transform for decorators, up-vote this issue.

--

How does it work?

๐Ÿ’„ uses ES7 class method decorators on the render function. Detailed post coming soon.

Inspiration

Heavily inspired from glamor, styled-components and radium

Special thanks to thysultan. stylis is the bomb!

Support

โญ๏ธ this repo!

css-constructor's People

Contributors

siddharthkp avatar vikramsunilpatil avatar

Watchers

 avatar  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.