1
0
mirror of https://github.com/phuoc-ng/csslayout.git synced 2025-08-26 23:35:08 +02:00

Add video background pattern

This commit is contained in:
Phuoc Nguyen
2019-12-16 22:13:24 +07:00
parent 7567b3e158
commit b7d4090c5f
8 changed files with 197 additions and 4 deletions

View File

@@ -0,0 +1,34 @@
import React from 'react';
import Frame from '../../placeholders/Frame';
import Line from '../../placeholders/Line';
const Cover: React.FC<{}> = () => {
return (
<Frame>
<div
style={{
alignItems: 'center',
backgroundColor: 'rgba(0, 0, 0, 0.25)',
display: 'flex',
flexDirection: 'column',
height: '100%',
justifyContent: 'center',
padding: '8px',
}}
>
<div style={{ marginBottom: '4px', width: '80%' }}>
<Line backgroundColor='#fff' />
</div>
<div style={{ marginBottom: '4px', width: '60%' }}>
<Line backgroundColor='#fff' />
</div>
<div style={{ width: '40%' }}>
<Line backgroundColor='#fff' />
</div>
</div>
</Frame>
);
};
export default Cover;

View File

@@ -0,0 +1,141 @@
import React from 'react';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Video background">
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
In this pattern, the video is displayed in the background.
</div>
<BrowserFrame
content={(
<div
style={{
alignItems: 'center',
display: 'flex',
flexDirection: 'column',
height: '100%',
justifyContent: 'center',
}}
>
<div
style={{
height: '100%',
position: 'relative',
width: '100%',
}}
>
<div
style={{
height: '100%',
left: 0,
overflow: 'hidden',
position: 'absolute',
top: 0,
width: '100%',
}}
>
<video
style={{
objectFit: 'cover',
width: '100%',
}}
autoPlay={true}
loop={true}
muted={true}
playsInline={true}
src="/assets/video-background-demo.mp4"
/>
</div>
<div
style={{
alignItems: 'center',
display: 'flex',
flexDirection: 'column',
height: '100%',
justifyContent: 'center',
left: 0,
position: 'absolute',
top: 0,
width: '100%',
}}
>
<div style={{ width: '250px' }}>
<Block backgroundColor='#fff' justify='center' numberOfBlocks={10} />
</div>
</div>
</div>
</div>
)}
source={`
<div style="
/* Used to position the video and content */
position: relative;
">
<!-- The video container -->
<div style="
/* Positioned at the top left corner */
left: 0px;
position: absolute;
top: 0px;
/* Take full size */
height: 100%;
width: 100%;
/* Hide the scrollbar */
overflow: hidden;
">
<video
style="
object-fit: cover;
/* Center the video */
left: 50%;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
/* Take full width */
width: 100%;
"
src="..."
>
</div>
<!-- The content -->
<div style="
/* Positioned at the top left corner */
left: 0px;
position: absolute;
top: 0px;
/* Take full size */
height: 100%;
width: 100%;
/* Center the content */
align-items: center;
display: flex;
flex-direction: column;
justify-content: center;
">
...
</div>
</div>
`}
/>
</div>
<RelatedPatterns patterns={[Pattern.OverlayPlayButton]} />
</DetailsLayout>
);
};
export default Details;