diff --git a/frontend/src/assets/dog-profile.png b/frontend/src/assets/dog-profile.png new file mode 100644 index 0000000..08f87ef Binary files /dev/null and b/frontend/src/assets/dog-profile.png differ diff --git a/frontend/src/pages/Profile.tsx b/frontend/src/pages/Profile.tsx index 79c9023..0176bcb 100644 --- a/frontend/src/pages/Profile.tsx +++ b/frontend/src/pages/Profile.tsx @@ -1,10 +1,197 @@ -function Profile() { - return ( -
-

User Profile

-

This is where you could show user info, preferences, or settings.

+import { useState, CSSProperties } from "react"; +import { Link } from "react-router-dom"; + + +import dogImage from "../assets/dog-profile.png"; +import instagramLogo from "../assets/instagram_logo.png"; +import facebookLogo from "../assets/facebook_logo.png"; +import twitterLogo from "../assets/twitter_logo.png"; +import youtubeLogo from "../assets/youtube_logo.png"; +import menuLogo from "../assets/menu_logo.png"; + +export default function Profile() { + const [isSignUp, setIsSignUp] = useState(false); + + return ( +
+
+
+

{isSignUp ? "Sign Up" : "Sign In"}

+ + + + + {isSignUp && ( +
    +
  • 5–12 characters
  • +
  • At least one number & symbol
  • +
+ )} + + {!isSignUp && ( +
+ Forgot Password? +
+ )} + + + +

+ {isSignUp ? ( + <> + Already have an account?{" "} + setIsSignUp(false)}> + Sign In + + + ) : ( + <> + Don’t have an account?{" "} + setIsSignUp(true)}> + Create one now! + + + )} +

+
+ + Dog
- ); - } - - export default Profile; \ No newline at end of file + + +
+ ); +} + +const containerStyle: CSSProperties = { + display: "flex", + flexDirection: "column", + minHeight: "100vh", + backgroundColor: "rgb(180, 164, 143)" +}; + +const contentWrapperStyle: CSSProperties = { + display: "flex", + flex: 1, + flexWrap: "wrap", + justifyContent: "center", + alignItems: "stretch" +}; + +const formBoxStyle: CSSProperties = { + backgroundColor: "#7b7267", + padding: "2rem", + borderRadius: "12px", + boxShadow: "3px 3px 6px rgba(0,0,0,0.4)", + width: "100%", + maxWidth: "400px", + margin: "auto", + display: "flex", + flexDirection: "column", + alignItems: "center", + color: "white", + boxSizing: "border-box" +}; + +const inputStyle: CSSProperties = { + width: "100%", + padding: "0.75rem", + borderRadius: "30px", + border: "none", + margin: "0.5rem 0", + fontSize: "1rem", + backgroundColor: "#e0d9d9" +}; + +const headerStyle: CSSProperties = { + fontSize: "2rem", + marginBottom: "1rem" +}; + +const buttonStyle: CSSProperties = { + backgroundColor: "black", + color: "white", + border: "none", + borderRadius: "30px", + padding: "0.75rem 2rem", + fontSize: "1rem", + cursor: "pointer", + margin: "1rem 0" +}; + +const forgotStyle: CSSProperties = { + width: "100%", + textAlign: "right", + fontSize: "0.85rem" +}; + +const footerTextStyle: CSSProperties = { + fontSize: "0.9rem", + textAlign: "center", + marginTop: "1rem" +}; + +const requirementsStyle: CSSProperties = { + textAlign: "left", + fontSize: "0.85rem", + margin: "0.5rem 0 1rem", + color: "#ddd" +}; + +const sideImageStyle: CSSProperties = { + width: "40vw", + minWidth: "300px", + maxWidth: "600px", + height: "100vh", + objectFit: "cover", + display: "block" +}; + +const footerStyle: CSSProperties = { + width: "100%", + backgroundColor: "black", + color: "white", + padding: "1rem", + display: "flex", + justifyContent: "space-between", + alignItems: "center", + flexWrap: "wrap", + boxSizing: "border-box" +}; + +const footerLeftStyle: CSSProperties = { + display: "flex", + gap: "1.5rem", + flexWrap: "wrap" +}; + +const iconStyle: CSSProperties = { + width: "36px", + height: "36px" +}; + +const linkStyle: CSSProperties = { + color: "#fff", + textDecoration: "underline", + cursor: "pointer" +};