Skip to content

Instantly share code, notes, and snippets.

View mistadikay's full-sized avatar

Denis Koltsov mistadikay

View GitHub Profile
/*
.
└── custom-components/
└── button
└── index.js
*/
// js from the last layer, styles from all previous layers
import Button from '#button';
// import Button from 'core-components/button/index.js';
// import from 'theme-reset/styles.less';
/*
.
└── theme-reset/
└── button/
└── styles.less
*/
.button {
display: inline-block;
box-sizing: border-box;
/*
.
└── core-components/
└── button/
└── index.js
*/
export default function Button({ mods, mix, children, ...props }) {
return (
<label block="button" mods={mods} mix={mix}>
<input block="button" elem="control" type="button" {...props} />
/* .popup */
:block(popup) {
/* .popup_visible */
&:mod(visible) {
}
/* .popup__content */
&:elem(content) {
import {
renderIntoDocument,
findRenderedDOMComponentWithBEM,
isDOMComponent
} from 'rebem-test-utils';
import Popup from '../components/popup';
const tree = renderIntoDocument(<Popup />);
const overlay = findRenderedDOMComponentWithBEM(tree, { block: 'popup', elem: 'overlay' });
import React from 'react';
import Modal from 'react-modal2';
import { stringify as b } from 'rebem-classname';
const block = 'popup';
class Popup extends React.Component {
render() {
return (
<Modal
import React from 'react';
class Popup extends React.Component {
render() {
return (
<div block="popup" mods={{visible: this.props.visible}}>
<div block="popup" elem="overlay" />
<div block="popup" elem="content">{this.props.children}</div>
</div>
);
import React from 'react';
import { BEM } from 'rebem';
class Popup extends React.Component {
render() {
return BEM(
{
block: 'popup',
mods: { visible: this.props.visible }
},
import Yummies from '@yummies/yummies';
class Popup extends Yummies.Component {
render() {
return {
block: 'popup',
mods: {
visible: this.props.visible
},
content: [
import React from 'react';
import b from 'b_';
const block = b.with('popup');
class Popup extends React.Component {
render() {
return (
<div className={b({ visible: this.props.visible })}>
<div className={b('overlay')}></div>