├── app.js ├── LICENSE ├── README.md ├── index.html └── style.css /app.js: -------------------------------------------------------------------------------- 1 | const buttons = document.querySelectorAll(".card-buttons button"); 2 | const sections = document.querySelectorAll(".card-section"); 3 | const card = document.querySelector(".card"); 4 | 5 | const handleButtonClick = e => { 6 | const targetSection = e.target.getAttribute("data-section"); 7 | const section = document.querySelector(targetSection); 8 | targetSection !== "#about" ? 9 | card.classList.add("is-active") : 10 | card.classList.remove("is-active"); 11 | card.setAttribute("data-state", targetSection); 12 | sections.forEach(s => s.classList.remove("is-active")); 13 | buttons.forEach(b => b.classList.remove("is-active")); 14 | e.target.classList.add("is-active"); 15 | section.classList.add("is-active"); 16 | }; 17 | 18 | buttons.forEach(btn => { 19 | btn.addEventListener("click", handleButtonClick); 20 | }); -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Abbireddy Venkata Chandu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **Profile Card** 4 | 5 | This is a basic profile card created using HTML, CSS, and JavaScript. 6 | 7 | **To view the live demo:** [Here](https://venkat-0706.github.io/Profile-Card/) 8 | 9 | **To run the project locally:** 10 | 11 | 1. **Clone the Repository:** 12 | ```bash 13 | git clone https://github.com/venkat-0706/profile-card.git 14 | ``` 15 | 2. **Open the `index.html` File:** 16 | Open the `index.html` file in your web browser. 17 | 18 | **Customization:** 19 | 20 | 1. **HTML:** 21 | - Modify the text content within the HTML elements to change the profile information. 22 | - Adjust the image source (`src` attribute) to use your own profile picture. 23 | 2. **CSS:** 24 | - Edit the CSS file to customize the card's colors, fonts, and layout. 25 | - You can modify the dimensions of the profile picture, the spacing between elements, and the overall design. 26 | 3. **JavaScript:** 27 | - Add JavaScript code to the `script` tag in the HTML file to implement dynamic features. 28 | - For example, you could use JavaScript to fetch user data from an API and populate the card, or create interactive elements like hover effects or click events. 29 | 30 | **Additional Tips:** 31 | 32 | - **Responsive Design:** Consider using CSS media queries to make the card responsive and adapt to different screen sizes. 33 | - **Accessibility:** Ensure the card is accessible to users with disabilities by using appropriate HTML semantic elements and ARIA attributes. 34 | - **Testing:** Test the card in different browsers and devices to ensure it displays correctly and functions as expected. 35 | 36 | **Further Exploration:** 37 | 38 | - **Advanced Styling:** Explore CSS frameworks like Bootstrap or Tailwind CSS to quickly create stylish and responsive profile cards. 39 | - **Interactive Features:** Use JavaScript to add features like hover effects, tooltips, or modal windows to enhance user experience. 40 | - **Data Fetching:** Implement JavaScript to fetch user data from APIs and dynamically populate the card. 41 | 42 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Chandu Profile Card 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 |

Abbireddy Venkata Chandu

16 |

Computer Science Engineering Student

17 |
18 |
19 |
20 |
21 |
ABOUT
22 |

As a Computer Science Engineering Student, 23 | I am interested about learning new programming languages and exploring various technologies, Now I am currently working on a startup objective and I am interested on Data Science and Nueral Networks.. 24 |

25 |
26 | 38 |
39 |
40 |
41 |
Education
42 |
43 |
44 |
Sri Adarsha Vidhyalaya Public Schhol at Pithapuram
45 |
10th Standard.
46 | 47 |
48 |
49 |
S.H.R.M Junior college at Pithapuram
50 |
Intermediate MPC.
51 |
52 |
53 |
Aditya college of Engineering and technology at Surampalem
54 |
Computer Science Engineering.
55 |
56 |
57 |
58 |
59 |
60 |
61 |
CONTACT
62 |
63 |
64 | 65 | 66 | 67 | Pithapuram , Kakinada , Andhra Pradesh, India 68 |
69 |
70 | 71 | +91 9640186272
72 |
73 | 74 | 75 | 76 | chanduabbireddy247@gmail.com 77 |
78 | 79 |
80 |
81 |
82 |
83 | 84 | 85 | 86 |
87 |
88 |
89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=DM+Sans:400,500|Jost:400,500,600&display=swap"); 2 | * { 3 | box-sizing: border-box; 4 | } 5 | 6 | body { 7 | color: #2b2c48; 8 | font-family: "Jost", sans-serif; 9 | background-image: url(11.jpg); 10 | background-repeat: no-repeat; 11 | background-size: cover; 12 | background-position: center; 13 | background-attachment: fixed; 14 | min-height: 100vh; 15 | display: flex; 16 | flex-wrap: wrap; 17 | padding: 20px; 18 | } 19 | 20 | .card { 21 | max-width: 340px; 22 | margin: auto; 23 | overflow-y: auto; 24 | position: relative; 25 | z-index: 1; 26 | overflow-x: hidden; 27 | background-color: white; 28 | display: flex; 29 | transition: 0.3s; 30 | flex-direction: column; 31 | border-radius: 10px; 32 | box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.2); 33 | } 34 | 35 | .card[data-state="#about"] { 36 | height: 450px; 37 | } 38 | .card[data-state="#about"] .card-main { 39 | padding-top: 0; 40 | } 41 | 42 | .card[data-state="#contact"] { 43 | height: 430px; 44 | } 45 | 46 | .card[data-state="#education"] { 47 | height: 550px; 48 | } 49 | 50 | .card.is-active .card-header { 51 | height: 80px; 52 | } 53 | .card.is-active .card-cover { 54 | height: 100px; 55 | top: -50px; 56 | } 57 | .card.is-active .card-avatar { 58 | transform: none; 59 | left: 20px; 60 | width: 50px; 61 | height: 50px; 62 | bottom: 10px; 63 | } 64 | .card.is-active .card-fullname, 65 | .card.is-active .card-jobtitle { 66 | left: 86px; 67 | transform: none; 68 | } 69 | .card.is-active .card-fullname { 70 | bottom: 18px; 71 | font-size: 19px; 72 | } 73 | .card.is-active .card-jobtitle { 74 | bottom: 16px; 75 | letter-spacing: 1px; 76 | font-size: 10px; 77 | } 78 | 79 | .card-header { 80 | position: relative; 81 | display: flex; 82 | height: 200px; 83 | flex-shrink: 0; 84 | width: 100%; 85 | transition: 0.3s; 86 | } 87 | .card-header * { 88 | transition: 0.3s; 89 | } 90 | 91 | .card-cover { 92 | width: 100%; 93 | height: 100%; 94 | position: absolute; 95 | top: -20%; 96 | left: 0; 97 | will-change: top; 98 | background-size: cover; 99 | background-position: center; 100 | filter: blur(30px); 101 | transform: scale(1.2); 102 | transition: 0.5s; 103 | } 104 | 105 | .card-avatar { 106 | width: 100px; 107 | height: 100px; 108 | box-shadow: 0 8px 8px rgba(0, 0, 0, 0.2); 109 | border-radius: 50%; 110 | -o-object-position: center; 111 | object-position: center; 112 | -o-object-fit: cover; 113 | object-fit: cover; 114 | position: absolute; 115 | bottom: 0; 116 | left: 50%; 117 | transform: translateX(-50%) translateY(-64px); 118 | } 119 | 120 | .card-fullname { 121 | position: absolute; 122 | bottom: 0; 123 | font-size: 22px; 124 | font-weight: 700; 125 | text-align: center; 126 | white-space: nowrap; 127 | transform: translateY(-10px) translateX(-50%); 128 | left: 50%; 129 | } 130 | 131 | .card-jobtitle { 132 | position: absolute; 133 | bottom: 0; 134 | font-size: 11px; 135 | white-space: nowrap; 136 | font-weight: 500; 137 | opacity: 0.7; 138 | text-transform: uppercase; 139 | letter-spacing: 1.5px; 140 | margin: 0; 141 | left: 50%; 142 | transform: translateX(-50%) translateY(-7px); 143 | } 144 | 145 | .card-main { 146 | position: relative; 147 | flex: 1; 148 | display: flex; 149 | padding-top: 10px; 150 | flex-direction: column; 151 | } 152 | 153 | .card-subtitle { 154 | font-weight: 700; 155 | font-size: 13px; 156 | margin-bottom: 8px; 157 | } 158 | 159 | .card-content { 160 | padding: 20px; 161 | } 162 | 163 | .card-desc { 164 | line-height: 1.6; 165 | color: #636b6f; 166 | font-size: 14px; 167 | margin: 0; 168 | font-weight: 400; 169 | font-family: "DM Sans", sans-serif; 170 | } 171 | 172 | .card-social { 173 | display: flex; 174 | align-items: center; 175 | padding: 0 20px; 176 | margin-bottom: 30px; 177 | } 178 | .card-social svg { 179 | fill: #a5b5ce; 180 | width: 16px; 181 | display: block; 182 | transition: 0.3s; 183 | } 184 | .card-social a { 185 | color: #8797a1; 186 | height: 32px; 187 | width: 32px; 188 | display: inline-flex; 189 | align-items: center; 190 | justify-content: center; 191 | transition: 0.3s; 192 | background-color: rgba(22, 87, 184, 0.05); 193 | border-radius: 50%; 194 | margin-right: 10px; 195 | } 196 | .card-social a:hover svg { 197 | fill: #00040a; 198 | } 199 | .card-social a:last-child { 200 | margin-right: 0; 201 | } 202 | 203 | .card-buttons { 204 | display: flex; 205 | background-color: #cfcbcb; 206 | margin-top: auto; 207 | position: sticky; 208 | bottom: 0; 209 | left: 0; 210 | } 211 | .card-buttons button { 212 | flex: 1 1 auto; 213 | -webkit-user-select: none; 214 | -moz-user-select: none; 215 | -ms-user-select: none; 216 | user-select: none; 217 | background: 0; 218 | font-size: 13px; 219 | border: 0; 220 | padding: 15px 5px; 221 | cursor: pointer; 222 | color: #5c5c6d; 223 | transition: 0.3s; 224 | font-family: "Jost", sans-serif; 225 | font-weight: 500; 226 | outline: 0; 227 | border-bottom: 3px solid transparent; 228 | } 229 | .card-buttons button.is-active, .card-buttons button:hover { 230 | color: #2b2c48; 231 | border-bottom: 3px solid #8a84ff; 232 | background: linear-gradient(to bottom, rgba(127, 199, 231, 0) 0%, rgba(207, 204, 255, 0.2) 44%, rgba(211, 226, 255, 0.4) 100%); 233 | } 234 | 235 | .card-section { 236 | display: none; 237 | } 238 | .card-section.is-active { 239 | display: block; 240 | -webkit-animation: fadeIn 0.6s both; 241 | animation: fadeIn 0.6s both; 242 | } 243 | 244 | @-webkit-keyframes fadeIn { 245 | 0% { 246 | opacity: 0; 247 | transform: translatey(40px); 248 | } 249 | 100% { 250 | opacity: 1; 251 | } 252 | } 253 | 254 | @keyframes fadeIn { 255 | 0% { 256 | opacity: 0; 257 | transform: translatey(40px); 258 | } 259 | 100% { 260 | opacity: 1; 261 | } 262 | } 263 | .card-timeline { 264 | margin-top: 30px; 265 | position: relative; 266 | } 267 | .card-timeline:after { 268 | background: linear-gradient(to top, rgba(134, 214, 243, 0) 0%, #516acc 100%); 269 | content: ""; 270 | left: 42px; 271 | width: 2px; 272 | top: 0; 273 | height: 100%; 274 | position: absolute; 275 | } 276 | 277 | .card-item { 278 | position: relative; 279 | padding-left: 60px; 280 | padding-right: 20px; 281 | padding-bottom: 30px; 282 | z-index: 1; 283 | } 284 | .card-item:last-child { 285 | padding-bottom: 5px; 286 | } 287 | .card-item:after { 288 | content: attr(data-year); 289 | position: absolute; 290 | top: 0; 291 | left: 37px; 292 | width: 8px; 293 | height: 8px; 294 | line-height: 0.6; 295 | border: 2px solid #fff; 296 | font-size: 11px; 297 | text-indent: -35px; 298 | border-radius: 50%; 299 | color: rgba(134, 134, 134, 0.7); 300 | background: linear-gradient(to bottom, #a0aee3 0%, #516acc 100%); 301 | } 302 | 303 | .card-item-title { 304 | font-weight: 500; 305 | font-size: 14px; 306 | margin-bottom: 5px; 307 | } 308 | 309 | .card-item-desc { 310 | font-size: 13px; 311 | color: #6f6f7b; 312 | line-height: 1.5; 313 | font-family: "DM Sans", sans-serif; 314 | } 315 | 316 | .card-contact-wrapper { 317 | margin-top: 20px; 318 | } 319 | 320 | .card-contact { 321 | display: flex; 322 | align-items: center; 323 | font-size: 13px; 324 | color: #6f6f7b; 325 | font-family: "DM Sans", sans-serif; 326 | line-height: 1.6; 327 | cursor: pointer; 328 | } 329 | .card-contact + .card-contact { 330 | margin-top: 16px; 331 | } 332 | .card-contact svg { 333 | flex-shrink: 0; 334 | width: 30px; 335 | min-height: 34px; 336 | margin-right: 12px; 337 | transition: 0.3s; 338 | padding-right: 12px; 339 | border-right: 1px solid #dfe2ec; 340 | } 341 | 342 | .contact-me { 343 | border: 0; 344 | outline: none; 345 | background: linear-gradient(to right, rgba(83, 200, 239, 0.8) 0%, rgba(81, 106, 204, 0.8) 96%); 346 | box-shadow: 0 4px 6px rgba(0, 0, 0, 0.15); 347 | color: #fff; 348 | padding: 12px 16px; 349 | width: 100%; 350 | border-radius: 5px; 351 | margin-top: 25px; 352 | cursor: pointer; 353 | font-size: 14px; 354 | font-weight: 500; 355 | font-family: "Jost", sans-serif; 356 | transition: 0.3s; 357 | } --------------------------------------------------------------------------------