@ -0,0 +1,17 @@ |
||||
import React from "react"; |
||||
import { connect } from "react-redux"; |
||||
|
||||
export const Footer = ({}) => { |
||||
return ( |
||||
<div className="w-full py-4 border-t border-solid border-gray-100 flex justify-center items-center text-x font-3"> |
||||
ساخته شده با <span className="text-red-500 mx-1">♥</span> توسط برنامه |
||||
نگار |
||||
</div> |
||||
); |
||||
}; |
||||
|
||||
const mapStateToProps = (state) => ({}); |
||||
|
||||
const mapDispatchToProps = {}; |
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(Footer); |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 347 B |
After Width: | Height: | Size: 266 B |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 412 B |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 31 KiB |
@ -0,0 +1,133 @@ |
||||
.logo{ |
||||
animation : logoZoomIn 0.4s 1; |
||||
transform : scale(100%) translateX(-50%); |
||||
width: "11.14vw"; |
||||
top: calc((100vh - 100vh / 12) / 10); |
||||
} |
||||
|
||||
.roban{ |
||||
animation : robanZoomIn 1.0s 1; |
||||
transform: scale(100%) translateX(-50%) translateY(-90%); |
||||
width: "40.46vw", |
||||
} |
||||
|
||||
.icons { |
||||
animation: icons 1s 1; |
||||
transform: translateY(0px); |
||||
} |
||||
|
||||
.title-top-line{ |
||||
animation: titleTopLine 0.7s 1; |
||||
} |
||||
|
||||
.title-bottom-line{ |
||||
animation: titleBottomLine 0.7s 1; |
||||
transform: translateY(-30%); |
||||
} |
||||
|
||||
.voice{ |
||||
animation: voice 0.7s 1; |
||||
transform: translateX(100%); |
||||
} |
||||
|
||||
.gallery{ |
||||
animation: gallery 0.7s 1; |
||||
transform: translateX(0px); |
||||
} |
||||
|
||||
.message1{ |
||||
animation: message1 0.7s 1; |
||||
transform: translateX(100%); |
||||
} |
||||
|
||||
.message2{ |
||||
animation: message2 0.7s 1; |
||||
transform: translateX(0px); |
||||
} |
||||
|
||||
|
||||
|
||||
// keyframes |
||||
|
||||
@keyframes logoZoomIn{ |
||||
0% { |
||||
transform : scale(0%) translateX(-50%); |
||||
} |
||||
100% { |
||||
transform : scale(100%) translateX(-50%); |
||||
} |
||||
} |
||||
|
||||
@keyframes robanZoomIn{ |
||||
0% { |
||||
transform : scale(0%) translateX(-50%) translateY(-90%); |
||||
} |
||||
100% { |
||||
transform: scale(100%) translateX(-50%) translateY(-90%), |
||||
} |
||||
} |
||||
|
||||
@keyframes titleTopLine { |
||||
0% { |
||||
transform : translateX(calc(100vw / 2 - 50%)); |
||||
opacity: 0; |
||||
} |
||||
100% { |
||||
transform: translateX(0px); |
||||
opacity: 1; |
||||
} |
||||
} |
||||
|
||||
@keyframes titleBottomLine { |
||||
0% { |
||||
transform : translateY(-30%) translateX(calc(-100vw / 2 - 50%)); |
||||
} |
||||
100% { |
||||
transform: translateY(-30%) translateX(0px); |
||||
} |
||||
} |
||||
|
||||
@keyframes icons { |
||||
0% { |
||||
transform : translateY(-100vw); |
||||
} |
||||
100% { |
||||
transform: translateY(0px); |
||||
} |
||||
} |
||||
|
||||
@keyframes voice { |
||||
0% { |
||||
transform : translateX(calc(50vw)); |
||||
} |
||||
100% { |
||||
transform: translateX(100%); |
||||
} |
||||
} |
||||
|
||||
@keyframes gallery { |
||||
0% { |
||||
transform : translateX(calc(-50vw)); |
||||
} |
||||
100% { |
||||
transform: translateX(0px); |
||||
} |
||||
} |
||||
|
||||
@keyframes message1 { |
||||
0% { |
||||
transform : translateX(calc(50vw)); |
||||
} |
||||
100% { |
||||
transform: translateX(100%); |
||||
} |
||||
} |
||||
|
||||
@keyframes message2 { |
||||
0% { |
||||
transform : translateX(-50vw); |
||||
} |
||||
100% { |
||||
transform: translateX(0px); |
||||
} |
||||
} |