xyzdata / redux-simple-tutorial

Redux 莞式教程。本教程深入浅出,配套入门、进阶源码解读以及文档注释丰满的 Demo 等一条龙服务
0 stars 1 forks source link

CSS in JS & css-modules #3

Open xgqfrms-GitHub opened 6 years ago

xgqfrms-GitHub commented 6 years ago

CSS in JS & css-modules

https://github.com/airbnb/react-with-styles

https://medium.com/@pioul/modular-css-with-react-61638ae9ea3e

https://speakerdeck.com/vjeux/react-css-in-js

https://github.com/css-modules/css-modules


/* Thumbnail.css.js */
export default {
    image: {
        borderRadius: '3px'
    }
}

/* Thumbnail.jsx */
import styles from './Thumbnail.css.js';

render() {
    return(
        <img className={styles.image}/>
    );
}

/* Rendered DOM */
<img style="border-radius: 3px;"/>

testing ???


import * as CSSinJS from './styles.css';
// ???

// CSSinJS.css1

<div className={CSSinJS.css1}>
    <h1>CSS in JS </h1>
</div>

import logo from '../img/logo.png';
import './App.css';
xgqfrms-GitHub commented 6 years ago

OK demo

auto class hash_name


/* Thumbnail.css */
.image {
    border-radius: 3px;
}

/* Thumbnail.jsx */
import styles from './Thumbnail.css';

// import * as CSSinJS from './styles.css';

render() {
    return(
        <img className={styles.image}/>
    );
}

/* Rendered DOM */
<img class="Thumbnail__image___1DA66"/>

/* Processed Thumbnail.css */
.Thumbnail__image___1DA66 {
    border-radius: 3px;
}

https://speakerd.s3.amazonaws.com/presentations/2e15908049bb013230960224c1b4b8bd/css-in-javascript.pdf

https://medium.com/@pioul/modular-css-with-react-61638ae9ea3e

xgqfrms-GitHub commented 6 years ago

Bad Demo

inline style CSS


/* Thumbnail.css.js */
export default {
    image: {
        borderRadius: '3px'
    }
}

/* Thumbnail.jsx */
import styles from './Thumbnail.css.js';

render() {
    return(
        <img className={styles.image}/>
    );
}

/* Rendered DOM */
<img style="border-radius: 3px;"/>
xgqfrms-GitHub commented 6 years ago

http://weipan.ketongtx.com/microtrade/static/crm/index.html#/order

image

xgqfrms-GitHub commented 6 years ago
/*

.css-in-js-h1 {
    color: #0f0;
    font-size: 2rem;
    text-shadow: 3px 3px #000;
    background: rgba(255, 255, 255, 0.7);
}

.css_in_js_h1 {
    color: #0f0;
    font-size: 2rem;
    text-shadow: 3px 3px #000;
    background: rgba(255, 255, 255, 0.7);
}

*/

import styles from './Item1.css';
// css in js

<span className={styles.css_in_js_h1}>
    CSS in JS Testing
</span>
<span className="css-in-js-h1">
    className Testing
</span>

image

CSS Modules

https://github.com/css-modules/css-modules

CSS模块是一个CSS文件,默认情况下,所有类名和动画名称都在本地范围内。

xgqfrms-GitHub commented 6 years ago

https://github.com/MicheleBertoli/css-in-js

xgqfrms-GitHub commented 6 years ago

webpack

css-loader?modules

https://github.com/webpack/css-loader

https://github.com/css-modules/webpack-demo

https://github.com/css-modules/css-modules/blob/master/docs/get-started.md#webpack


$ npm i -D css-loader
xgqfrms-GitHub commented 6 years ago

webpack.config.js

https://github.com/webpack-contrib/css-loader


module.exports = {
    module: {
        rules: [
            {
                test: /\.css$/,
                use: [ 'style-loader', 'css-loader' ]
            }
        ]
    }
}
xgqfrms-GitHub commented 6 years ago

CSS Modules Webpack Demo

https://github.com/css-modules/webpack-demo


$ npm i
$ npm start & open http://localhost:8080
xgqfrms-GitHub commented 6 years ago

https://github.com/webpack/style-loader

https://github.com/airbnb/react-with-styles

xgqfrms-GitHub commented 6 years ago

sass-loader node

xgqfrms-GitHub commented 6 years ago

CSS :nth-of-type


/* 
2n+1 

https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-of-type

:nth-of-type(2n)
*/