1
0
mirror of https://github.com/phuoc-ng/csslayout.git synced 2025-08-09 07:36:30 +02:00

Add a button to flip between demo/source

This commit is contained in:
Phuoc Nguyen
2019-11-15 15:40:03 +07:00
parent b3609fc8d2
commit 3668a6ee3a
2 changed files with 41 additions and 9 deletions

View File

@@ -6,11 +6,16 @@ import BrowserFrame from '../placeholders/BrowserFrame';
const Centering = () => { const Centering = () => {
return ( return (
<DetailsLayout name="Centering"> <DetailsLayout name="Centering">
<BrowserFrame> <BrowserFrame
<div className="h-100 flex flex-column items-center justify-center"> content={
<div className="f1 b">CENTER</div> <div className="h-100 flex flex-column items-center justify-center">
</div> <div className="f1 b">CENTER</div>
</BrowserFrame> </div>
}
source={
<div>source</div>
}
/>
</DetailsLayout> </DetailsLayout>
); );
}; };

View File

@@ -1,15 +1,42 @@
import React from 'react'; import React, { useState } from 'react';
const BrowserFrame = ({ content, source }) => {
const [isContentActive, setContentActive] = useState(true);
const flip = () => setContentActive(isActive => !isActive);
const BrowserFrame = ({ children }) => {
return ( return (
<div className="br2 ba b--black-20"> <div className="br2 ba b--black-20">
<div className="flex pa3 bb b--black-20 items-center"> <div className="flex pa3 bb b--black-20 items-center">
<div className="br-100 mr1 w1 h1 bg-red" /> <div className="br-100 mr1 w1 h1 bg-red" />
<div className="br-100 mr1 w1 h1 bg-gold" /> <div className="br-100 mr1 w1 h1 bg-gold" />
<div className="br-100 mr1 w1 h1 bg-red" /> <div className="br-100 mr1 w1 h1 bg-red" />
<div className="ml-auto">
<buton className="pointer bg-dark-blue br2 ph2 pv1 white" onClick={flip}>
{isContentActive ? 'Source' : 'Demo'}
</buton>
</div>
</div> </div>
<div style={{ height: '512px' }}> <div
{children} className="relative"
style={{
height: '512px',
transition: 'transform 1s',
transformStyle: 'preserve-3d',
transform: isContentActive ? '' : 'rotateY(180deg)',
}}
>
<div className="absolute top-0 left-0 h-100 w-100" style={{ backfaceVisibility: 'hidden' }}>
{content}
</div>
<div
className="absolute top-0 left-0 h-100 w-100"
style={{
backfaceVisibility: 'hidden',
transform: 'rotateY(180deg)',
}}
>
{source}
</div>
</div> </div>
</div> </div>
); );