mirror of
https://github.com/phuoc-ng/csslayout.git
synced 2025-08-11 08:34:27 +02:00
Animate the cards
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
|
import './home.css';
|
||||||
|
|
||||||
import CoverCard from './components/CoverCard';
|
import CoverCard from './components/CoverCard';
|
||||||
import Pattern from './constants/Pattern';
|
import Pattern from './constants/Pattern';
|
||||||
import useDocumentTitle from './hooks/useDocumentTitle';
|
import useDocumentTitle from './hooks/useDocumentTitle';
|
||||||
@@ -117,7 +119,7 @@ const Home = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<section style={{ position: 'relative' }}>
|
<section style={{ height: '800px', overflow: 'hidden', paddingBottom: '32px', position: 'relative' }}>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
@@ -156,6 +158,7 @@ const Home = () => {
|
|||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
className="home-cards"
|
||||||
style={{
|
style={{
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
flexWrap: 'wrap',
|
flexWrap: 'wrap',
|
||||||
@@ -188,6 +191,20 @@ const Home = () => {
|
|||||||
<CoverCard pattern={Pattern.PropertyList} />
|
<CoverCard pattern={Pattern.PropertyList} />
|
||||||
<CoverCard pattern={Pattern.ProgressBar} />
|
<CoverCard pattern={Pattern.ProgressBar} />
|
||||||
<CoverCard pattern={Pattern.QuestionsAndAnswers} />
|
<CoverCard pattern={Pattern.QuestionsAndAnswers} />
|
||||||
|
<CoverCard pattern={Pattern.RadioSwitch} />
|
||||||
|
<CoverCard pattern={Pattern.Rating} />
|
||||||
|
<CoverCard pattern={Pattern.SameHeightColumns} />
|
||||||
|
<CoverCard pattern={Pattern.SearchBox} />
|
||||||
|
<CoverCard pattern={Pattern.Separator} />
|
||||||
|
<CoverCard pattern={Pattern.SimpleGrid} />
|
||||||
|
<CoverCard pattern={Pattern.Slider} />
|
||||||
|
<CoverCard pattern={Pattern.SpinButton} />
|
||||||
|
<CoverCard pattern={Pattern.SplitNavigation} />
|
||||||
|
<CoverCard pattern={Pattern.StepperInput} />
|
||||||
|
<CoverCard pattern={Pattern.Switch} />
|
||||||
|
<CoverCard pattern={Pattern.Tab} />
|
||||||
|
<CoverCard pattern={Pattern.TogglePasswordVisibility} />
|
||||||
|
<CoverCard pattern={Pattern.Wizard} />
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -14,10 +14,27 @@ const CoverCard: React.FC<CoverCardProps> = ({ pattern }) => {
|
|||||||
<div className="pa1 w-20">
|
<div className="pa1 w-20">
|
||||||
<Link
|
<Link
|
||||||
to={`/${slug(pattern)}`}
|
to={`/${slug(pattern)}`}
|
||||||
className="link flex flex-column items-center justify-center tc hover-bg-black-10 br2 pa3"
|
style={{
|
||||||
|
alignItems: 'center',
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'column',
|
||||||
|
justifyContent: 'center',
|
||||||
|
padding: '16px',
|
||||||
|
textDecoration: 'none',
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<CoverLoader pattern={pattern} />
|
<CoverLoader pattern={pattern} />
|
||||||
<h4 className="f5 mv0 pt3 fw6">{pattern}</h4>
|
<h4
|
||||||
|
style={{
|
||||||
|
color: 'rgba(0, 0, 0, 0.3)',
|
||||||
|
fontSize: '16px',
|
||||||
|
fontWeight: 500,
|
||||||
|
margin: 0,
|
||||||
|
paddingTop: '12px',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{pattern}
|
||||||
|
</h4>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@@ -6,8 +6,24 @@ interface HeadingProps {
|
|||||||
|
|
||||||
const Heading: React.FC<HeadingProps> = ({ title }) => {
|
const Heading: React.FC<HeadingProps> = ({ title }) => {
|
||||||
return (
|
return (
|
||||||
<div className="bt b--black-20 relative">
|
<div style={{ borderTop: '1px solid rgba(0, 0, 0, .2)', position: 'relative' }}>
|
||||||
<h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0 ttu" style={{ transform: 'translate(0, -50%)' }}>{title}</h3>
|
<h3
|
||||||
|
style={{
|
||||||
|
backgroundColor: '#FFF',
|
||||||
|
fontSize: '20px',
|
||||||
|
fontWeight: 700,
|
||||||
|
left: '32px',
|
||||||
|
lineHeight: 1.5,
|
||||||
|
margin: 0,
|
||||||
|
padding: '0 8px',
|
||||||
|
position: 'absolute',
|
||||||
|
textTransform: 'uppercase',
|
||||||
|
top: 0,
|
||||||
|
transform: 'translate(0, -50%)',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{title}
|
||||||
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
12
client/home.css
Normal file
12
client/home.css
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
.home-cards {
|
||||||
|
animation: slide 60s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes slide{
|
||||||
|
0% {
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: translate3d(0, -600px, 0);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user