ishikki-akabane/ZoLink
Zolink Templates is an open-source collection of customizable, responsive profile page components built in Typescript for the Zolink platform.
๐จ Zolink Templates
Craft Stunning, Customizable Profile Pages for the Social Web
Build breathtaking profile pages with our open-source collection of React components. Designed for Zolink, the platform that redefines your online presence.
๐ What is Zolink Templates?
Zolink Templates is an open-source library of responsive, customizable profile page components built with Next.js, TypeScript, and Tailwind CSS. Our templates empower developers and users to create visually stunning, accessible, and performant profile pages for the Zolink platform. Whether you're showcasing your portfolio, social links, or personal brand, Zolink Templates makes it effortless and elegant.
๐ Live Demo: zolink.site/templates
๐ Features
- ๐จ Beautiful Designs: Modern, trend-aware templates with customizable themes.
- ๐ฑ Fully Responsive: Seamless experience across desktop, tablet, and mobile.
- โก TypeScript-Powered: Type-safe code with IntelliSense support for developers.
- ๐ฏ Highly Customizable: Easily tweak colors, layouts, and functionality.
- โฟ WCAG-Compliant: Accessible designs with proper ARIA labels and keyboard navigation.
- ๐ฆ Modular Architecture: Mix and match components or use complete templates.
- ๐ Dynamic Data: Supports real-time data updates for profiles and social links.
- โก Optimized Performance: Lazy loading, memoization, and image optimization.
๐ Data Model
Each template adheres to a standardized data structure for consistency and ease of integration:
interface User {
uid: string;
username: string;
likes: number;
views: number;
profile: ProfileData;
createdAt: number;
updatedAt: number;
}
interface ProfileData {
displayName: string;
bio: string;
avatar: string;
theme: string;
accentColor: string;
images: string[];
socialLinks: SocialLink[];
}
interface SocialLink {
id: string;
platform: string;
url: string;
title: string;
icon: React.ReactNode; // Supports Lucide or Simple Icons
color: string;
visible: boolean;
}๐ ๏ธ Getting Started
Prerequisites
- Node.js: v18 or higher
- Next.js: v14 or higher
- TypeScript: v5 or higher
- Tailwind CSS: v3 or higher
- pnpm (recommended for package management)
๐ค Contributing
We welcome contributions from developers, designers, and enthusiasts of all skill levels! Whether you're fixing bugs, enhancing documentation, or creating new templates, your contributions help make Zolink Templates better for everyone.
Contribution Workflow
- Fork the Repository: Click the "Fork" button on GitHub.
- Create a Feature Branch:
git checkout -b feature/your-template-name
- Develop Your Template:
- Follow the Template Guidelines below.
- Ensure responsiveness and accessibility.
- Test across devices and screen sizes.
- Commit Changes:
git commit -m "Add YourTemplateName with responsive design and accessibility" - Submit a Pull Request:
- Provide a detailed description of your changes.
- Include screenshots or a live demo (if possible).
- Reference related issues (e.g.,
#123).
Template Guidelines
File Structure
Organize your template in the following structure:
templates/
โโโ YourTemplateName/
โ โโโ index.tsx # Main template component
โ โโโ preview.png # Screenshot/images for showcase
โ โโโ README.md # Optional: Template-specific documentation
โ โโโ components/ # Optional: Reusable sub-components
โ โโโ styles/ # Optional: Custom CSS or Tailwind overrides
Code Standards
- โ Use TypeScript with proper types
- โ Follow the existing component interface
- โ Use Tailwind CSS for styling
- โ Ensure responsive design (mobile-first)
- โ Add proper accessibility attributes
- โ Include error handling for missing data
Component Props
interface YourTemplateProps {
profile: User // Use the standard User interface
}
export function YourTemplate({ profile }: YourTemplateProps) {
// Your component logic
}Required Features
- ๐ฑ Mobile responsive design
- ๐ Social links integration
- ๐ Like button functionality
- ๐ค Share functionality
- ๐ผ๏ธ Avatar/image display
- ๐ Bio/description support
Best Practices
- Use meaningful component and variable names
- Add comments for complex logic
- Optimize for performance (lazy loading, memoization)
- Handle edge cases (missing data, long text)
- Test across different screen sizes
- Validate accessibility with screen readers
๐ Documentation
Component API
Each template component accepts a profile prop with the standard User interface:
<YourTemplate profile={userData} />Styling
Templates use Tailwind CSS with our custom design system:
- Colors: Consistent color palette with theme support
- Typography: Responsive text scales
- Spacing: Consistent margin and padding
- Components: Reusable UI components from shadcn/ui
๐จ Design Principles
Our templates follow these design principles:
- Simplicity - Clean, uncluttered interfaces
- Accessibility - Usable by everyone
- Performance - Fast loading and smooth interactions
- Consistency - Unified design language
- Flexibility - Easy to customize and extend
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Built with Next.js, TypeScript, and Tailwind CSS.
- UI components powered by shadcn/ui.
- Icons from Lucide React and Simple Icons.
- Special thanks to our amazing community of contributors!
๐ Links
- Website: zolink.site
- Developer: github.com/ishikki-akabane
- Issues: Report a bug or request a feature
๐ Support
Need help? Have questions?
- ๐ฌ Discussions: GitHub Discussions
- ๐ Bug Reports: GitHub Issues
- ๐ง Email: Contact us
Crafted with โค๏ธ by the Zolink Community