Spaces:
Sleeping
Sleeping
File size: 3,019 Bytes
759768a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
import React from 'react';
const ProcessStep = ({
icon,
title,
description,
stepNumber,
isLast = false
}) => {
return (
<div style={{
textAlign: 'center',
padding: '20px',
position: 'relative'
}}>
{/* Step Number Badge */}
<div style={{
position: 'absolute',
top: '10px',
left: '10px',
width: '30px',
height: '30px',
borderRadius: '50%',
background: 'linear-gradient(135deg, #2E7D32 0%, #4CAF50 100%)',
color: 'white',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
fontSize: '0.9rem',
fontWeight: 'bold',
boxShadow: '0 2px 8px rgba(46, 125, 50, 0.3)'
}}>
{stepNumber}
</div>
{/* Icon */}
<div style={{
fontSize: '3rem',
marginBottom: '15px',
filter: 'drop-shadow(0 4px 8px rgba(0,0,0,0.1))',
transition: 'transform 0.3s ease'
}}
onMouseEnter={(e) => {
e.currentTarget.style.transform = 'scale(1.1) rotate(5deg)';
}}
onMouseLeave={(e) => {
e.currentTarget.style.transform = 'scale(1) rotate(0deg)';
}}
>
{icon}
</div>
{/* Title */}
<h4 style={{
color: '#2E7D32',
marginBottom: '10px',
fontSize: '1.1rem',
fontWeight: 'bold'
}}>
{title}
</h4>
{/* Description */}
<p style={{
color: '#666',
fontSize: '0.9rem',
lineHeight: '1.4',
margin: '0'
}}>
{description}
</p>
{/* Arrow to next step */}
{!isLast && (
<div style={{
position: 'absolute',
right: '-15px',
top: '50%',
transform: 'translateY(-50%)',
fontSize: '2rem',
color: '#4CAF50',
zIndex: 1
}}>
→
</div>
)}
</div>
);
};
const ProcessFlow = ({ steps, title }) => {
return (
<div style={{ marginBottom: '30px' }}>
{title && (
<h3 style={{
textAlign: 'center',
color: '#2E7D32',
marginBottom: '30px',
fontSize: '1.5rem',
fontWeight: 'bold'
}}>
{title}
</h3>
)}
<div style={{
display: 'grid',
gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))',
gap: '20px',
position: 'relative',
background: 'white',
padding: '20px',
borderRadius: '12px',
boxShadow: '0 4px 15px rgba(0, 0, 0, 0.1)'
}}>
{steps.map((step, index) => (
<ProcessStep
key={index}
{...step}
stepNumber={index + 1}
isLast={index === steps.length - 1}
/>
))}
</div>
</div>
);
};
export default ProcessFlow; |