-
Notifications
You must be signed in to change notification settings - Fork 0
[WIP] Add material design like Google latest UI and designs #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# Material Design LinkFree Template | ||
|
||
A modern LinkFree template following Google's Material Design 3 guidelines. | ||
|
||
## Features | ||
|
||
- **Material Design 3**: Latest Google design system with updated color schemes and typography | ||
- **Material Icons**: Official Google Material Icons for a polished look | ||
- **Roboto Font**: Google's signature typeface for Material Design | ||
- **Elevation System**: Multiple shadow levels for depth and hierarchy | ||
- **Ripple Effects**: Interactive touch feedback on link cards | ||
- **Responsive Design**: Optimized for mobile, tablet, and desktop screens | ||
- **Smooth Animations**: Material motion with cubic-bezier easing | ||
- **Accessibility**: Proper focus states and semantic HTML | ||
- **State Layers**: Hover and active states following Material guidelines | ||
|
||
## Customization | ||
|
||
### Colors | ||
|
||
Edit the CSS variables in `style.css` to match your brand: | ||
|
||
```css | ||
:root { | ||
--md-primary: #6750A4; /* Primary brand color */ | ||
--md-primary-container: #EADDFF; | ||
--md-on-primary: #FFFFFF; | ||
/* ... more color variables */ | ||
} | ||
``` | ||
|
||
### Content | ||
|
||
Update the following in `index.html`: | ||
|
||
1. **Profile Photo**: Replace the `src` in the `<img>` tag with your own image URL (currently using a placeholder) | ||
2. **Name & Username**: Update the text in profile card | ||
3. **Bio**: Modify the profile description | ||
4. **Links**: Add/remove link cards as needed | ||
5. **Icons**: Change Material Icons to match your needs (see [Material Icons](https://fonts.google.com/icons)) | ||
|
||
> **Note**: Make sure to replace the placeholder profile image with your own image URL! | ||
|
||
### Adding New Links | ||
|
||
Copy and paste this structure to add more links: | ||
|
||
```html | ||
<a href="YOUR_URL" class="md-link-card" target="_blank"> | ||
<span class="material-icons link-icon">ICON_NAME</span> | ||
<div class="link-content"> | ||
<span class="link-title">Title</span> | ||
<span class="link-subtitle">Subtitle</span> | ||
</div> | ||
<span class="material-icons link-arrow">arrow_forward</span> | ||
<div class="md-ripple"></div> | ||
</a> | ||
``` | ||
|
||
## Material Design Resources | ||
|
||
- [Material Design 3](https://m3.material.io/) | ||
- [Material Icons](https://fonts.google.com/icons) | ||
- [Material Color System](https://m3.material.io/styles/color/overview) | ||
- [Material Typography](https://m3.material.io/styles/typography/overview) | ||
|
||
## Browser Support | ||
|
||
- Chrome (latest) | ||
- Firefox (latest) | ||
- Safari (latest) | ||
- Edge (latest) | ||
- Mobile browsers | ||
|
||
## License | ||
|
||
This template is part of the LinkFree project and follows the same license. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title>Material Design LinkFree</title> | ||
|
||
<!-- Google Fonts - Roboto (Material Design Typography) --> | ||
<link rel="preconnect" href="https://fonts.googleapis.com"> | ||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | ||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet"> | ||
|
||
<!-- Material Icons --> | ||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> | ||
|
||
<!-- Custom Styles --> | ||
<link rel="stylesheet" href="style.css"> | ||
</head> | ||
<body> | ||
<!-- Material Design Surface --> | ||
<div class="md-container"> | ||
<!-- Profile Card --> | ||
<div class="md-card profile-card"> | ||
<div class="profile-image-wrapper"> | ||
<img src="https://i.imgur.com/t8ZX9um.jpg" alt="Profile Photo" class="profile-image"> | ||
</div> | ||
<h1 class="profile-name">Your Name</h1> | ||
<p class="profile-bio">@yourusername</p> | ||
<p class="profile-description">Welcome to my links! Find all my social media and projects here.</p> | ||
</div> | ||
|
||
<!-- Links Section --> | ||
<div class="links-container"> | ||
<!-- Link with Material Icon --> | ||
<a href="#" class="md-link-card" target="_blank"> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All link cards use placeholder '#' URLs. Consider providing example URLs or clearer placeholder text to guide users in customization. Copilot uses AI. Check for mistakes. Positive FeedbackNegative Feedback |
||
<span class="material-icons link-icon">language</span> | ||
<div class="link-content"> | ||
<span class="link-title">My Website</span> | ||
<span class="link-subtitle">Visit my personal website</span> | ||
</div> | ||
<span class="material-icons link-arrow">arrow_forward</span> | ||
<div class="md-ripple"></div> | ||
</a> | ||
|
||
<a href="#" class="md-link-card" target="_blank"> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All link cards use placeholder '#' URLs. Consider providing example URLs or clearer placeholder text to guide users in customization. Copilot uses AI. Check for mistakes. Positive FeedbackNegative Feedback |
||
<span class="material-icons link-icon">code</span> | ||
<div class="link-content"> | ||
<span class="link-title">GitHub</span> | ||
<span class="link-subtitle">Check out my code</span> | ||
</div> | ||
<span class="material-icons link-arrow">arrow_forward</span> | ||
<div class="md-ripple"></div> | ||
</a> | ||
|
||
<a href="#" class="md-link-card" target="_blank"> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All link cards use placeholder '#' URLs. Consider providing example URLs or clearer placeholder text to guide users in customization. Copilot uses AI. Check for mistakes. Positive FeedbackNegative Feedback |
||
<span class="material-icons link-icon">work</span> | ||
<div class="link-content"> | ||
<span class="link-title">LinkedIn</span> | ||
<span class="link-subtitle">Connect professionally</span> | ||
</div> | ||
<span class="material-icons link-arrow">arrow_forward</span> | ||
<div class="md-ripple"></div> | ||
</a> | ||
|
||
<a href="#" class="md-link-card" target="_blank"> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All link cards use placeholder '#' URLs. Consider providing example URLs or clearer placeholder text to guide users in customization. Copilot uses AI. Check for mistakes. Positive FeedbackNegative Feedback |
||
<span class="material-icons link-icon">photo_camera</span> | ||
<div class="link-content"> | ||
<span class="link-title">Instagram</span> | ||
<span class="link-subtitle">Follow my journey</span> | ||
</div> | ||
<span class="material-icons link-arrow">arrow_forward</span> | ||
<div class="md-ripple"></div> | ||
</a> | ||
|
||
<a href="#" class="md-link-card" target="_blank"> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All link cards use placeholder '#' URLs. Consider providing example URLs or clearer placeholder text to guide users in customization. Copilot uses AI. Check for mistakes. Positive FeedbackNegative Feedback |
||
<span class="material-icons link-icon">email</span> | ||
<div class="link-content"> | ||
<span class="link-title">Contact Me</span> | ||
<span class="link-subtitle">Get in touch</span> | ||
</div> | ||
<span class="material-icons link-arrow">arrow_forward</span> | ||
<div class="md-ripple"></div> | ||
</a> | ||
</div> | ||
|
||
<!-- Footer --> | ||
<footer class="md-footer"> | ||
<p>Made with Material Design 3</p> | ||
</footer> | ||
</div> | ||
|
||
<!-- Optional: Add ripple effect script --> | ||
<script src="index.js"></script> | ||
</body> | ||
</html> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
// Material Design Ripple Effect | ||
document.addEventListener('DOMContentLoaded', function() { | ||
const linkCards = document.querySelectorAll('.md-link-card'); | ||
|
||
linkCards.forEach(card => { | ||
card.addEventListener('click', function(e) { | ||
const ripple = this.querySelector('.md-ripple'); | ||
|
||
if (ripple) { | ||
// Remove existing animation | ||
ripple.style.animation = 'none'; | ||
|
||
// Trigger reflow | ||
void ripple.offsetWidth; | ||
|
||
// Get click position relative to the card | ||
const rect = this.getBoundingClientRect(); | ||
const x = e.clientX - rect.left; | ||
const y = e.clientY - rect.top; | ||
|
||
// Position the ripple | ||
ripple.style.left = x + 'px'; | ||
ripple.style.top = y + 'px'; | ||
|
||
// Restart animation | ||
ripple.style.animation = 'ripple-animation 600ms'; | ||
} | ||
|
||
// Optional: Track link clicks for analytics | ||
const linkTitle = this.querySelector('.link-title'); | ||
if (linkTitle) { | ||
trackLinkClick(linkTitle.textContent); | ||
} | ||
}); | ||
}); | ||
}); | ||
|
||
// Optional: Analytics tracking function | ||
function trackLinkClick(linkName) { | ||
console.log('Link clicked:', linkName); | ||
// Add your analytics code here (e.g., Google Analytics, Amplitude, etc.) | ||
// Example: gtag('event', 'click', { 'event_category': 'link', 'event_label': linkName }); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The placeholder image URL uses an external service (imgur) which may become unavailable. Consider using a local placeholder image or providing clearer instructions in the README about replacing this URL.
Copilot uses AI. Check for mistakes.