A comprehensive Svelte 5 component library with 100+ production-ready UI components
Documentation β’ Getting Started β’ Contributing β’ Storybook
- β¨ 100+ Components - Comprehensive UI components across 6 categories
- π¨ DaisyUI + Tailwind - Beautiful, themeable components
- π₯ Svelte 5 - Built with the latest Svelte features and runes
- π TypeScript - Fully typed with excellent IDE support
- π Storybook - Interactive component documentation
- βΏ Accessible - WCAG-compliant components
- π― Production-Ready - Optimized and tested
- π Dark Mode - Full theme support out of the box
Essential UI building blocks for any application:
- Buttons, Forms, Layout, Typography
- Media, Data Display, Feedback
- Modals, Dropdowns, Navigation
Admin panel and dashboard components:
- Dashboards, KPI Cards, Charts
- CRUD Tables, Data Management
- User Roles & Permissions
Enterprise workspace features:
- Workspace & Team Management
- Projects, Clients, Invoices
- Kanban Boards, Workflows
Online store building blocks:
- Product Listings & Details
- Shopping Cart & Checkout
- Order Management
Marketing and content sections:
- Hero Sections, Features
- Testimonials, Pricing
- Blog Layouts, CTAs
Cross-cutting utilities:
- Auth Layouts, Error Boundaries
- Search Bars, Filters
- Node.js 18+ (Download)
- pnpm 9+ (Install:
npm install -g pnpm) - Git for version control
- Svelte >= 5.0.0 (uses runes:
$props,$derived,$effect,{@render}) - Client-side only - This library is designed for client-side rendering. SSR/hydration is not currently supported.
This library uses Svelte 5's new runes syntax throughout all components. Projects using Svelte 4 will encounter build errors.
Components generate unique IDs at runtime using crypto.randomUUID(). This approach works perfectly for client-side rendering but is not compatible with SSR hydration. If you need SSR support, please open an issue to discuss implementation strategies.
- Clone the repository
git clone https://github.com/hTuneSys/hexaWebShare.git
cd hexaWebShare- Install root dependencies and setup Husky
pnpm installThis will:
- Install Husky for Git hooks
- Setup pre-commit hooks for REUSE compliance
- Prepare the development environment
- Navigate to the component library
cd hexawebshare- Install component library dependencies
pnpm install- Start Storybook
pnpm storybookStorybook will open at http://localhost:6006
cd hexawebshare
pnpm devOpens at http://localhost:5173
Comprehensive documentation is available in the docs/ directory:
- Getting Started - Setup and installation
- Contributing - How to contribute
- Development Guide - Development workflow
- Architecture - System architecture
- Branch Strategy - Branch naming and usage
- Commit Strategy - Commit message format
- PR Strategy - Pull request guidelines
- Labelling Strategy - Issue labels
- Project Structure - Directory organization
- Configuration - Config files explained
- Style Guide - Code style conventions
- FAQ - Frequently asked questions
In the hexawebshare/ directory:
| Command | Description |
|---|---|
pnpm install |
Install dependencies |
pnpm dev |
Start SvelteKit dev server |
pnpm storybook |
Start Storybook dev server |
pnpm build |
Build library package |
pnpm build-storybook |
Build static Storybook |
pnpm check |
TypeScript type checking |
pnpm format |
Format code with Prettier |
pnpm lint |
Check code formatting |
# 1. Install root dependencies (Husky)
pnpm install
# 2. Navigate to component library
cd hexawebshare
# 3. Install component dependencies
pnpm install
# 4. Start Storybook
pnpm storybook
# 5. Make your changes
# (Storybook will hot-reload automatically)
# 6. Check types
pnpm check
# 7. Format code
pnpm format
# 8. Commit changes
git add .
git commit -m "feat(Component): add new feature"
# Git hooks will automatically run:
# 1. REUSE compliance check (pre-commit)
# 2. Commit message validation (commit-msg)This project uses Git hooks to ensure code quality and compliance. Two hooks are automatically configured:
Checks that all files have proper SPDX license headers.
Required tool: REUSE
# Option 1: Install with pipx (recommended)
pipx install reuse
# Option 2: Install with pip
pip install --user reuseWhen it runs: Before each commit
git commit -m "feat: add new component"
# π Running REUSE compliance check...
# β
REUSE compliance check PASSED!Validates commit messages follow Conventional Commits format.
Required tools: Commitlint (installed in hexawebshare/node_modules)
When it runs: Before each commit (after pre-commit)
Required format:
<type>(<optional-scope>): <description>
Allowed types:
feat- New featurefix- Bug fixdocs- Documentation changesstyle- Code formatting (no logic change)refactor- Code restructuringperf- Performance improvementtest- Test changeschore- Maintenance tasksci- CI/CD changesbuild- Build system changesrelease- Release preparationhotfix- Critical emergency fix
Examples:
# β
Valid commits
git commit -m "feat(Button): add loading state prop"
git commit -m "fix(Modal): resolve focus trap issue"
git commit -m "docs(README): update installation steps"
# β Invalid commits
git commit -m "update button" # Missing type
git commit -m "added new feature" # Wrong tense
git commit -m "feat: buton eklendi" # Non-EnglishWhat happens during commit:
git commit -m "feat(Button): add loading state"
# π Running REUSE compliance check...
# β
REUSE compliance check PASSED!
# π Running Commitlint check...
# β
Commit message validation PASSED!See docs/COMMIT_STRATEGY.md for detailed commit message guidelines.
Before committing, ensure your code passes all checks:
cd hexawebshare
# Type checking
pnpm check
# Code formatting
pnpm format
# Linting
pnpm lint
# Build verification
pnpm build
# Storybook build
pnpm build-storybook<script lang="ts">
import { Button, Card, Modal } from 'hexawebshare';
let showModal = $state(false);
</script>
<Card>
<h2>Welcome to hexaWebShare</h2>
<Button
label="Open Modal"
variant="primary"
onclick={() => showModal = true}
/>
</Card>
{#if showModal}
<Modal onclose={() => showModal = false}>
<h3>Modal Content</h3>
<p>This is a modal from hexaWebShare!</p>
</Modal>
{/if}<!-- src/components/core/buttons/MyButton.svelte -->
<script lang="ts">
interface Props {
label: string;
variant?: 'primary' | 'secondary';
onclick?: () => void;
}
const {
label,
variant = 'primary',
onclick,
}: Props = $props();
</script>
<button
class="btn {variant === 'primary' ? 'btn-primary' : 'btn-secondary'}"
onclick={onclick}
>
{label}
</button>hexaWebShare/
βββ .github/ # GitHub configurations
β βββ workflows/ # CI/CD workflows
β βββ ISSUE_TEMPLATE/ # Issue templates
βββ .husky/ # Git hooks (pre-commit)
βββ docs/ # Comprehensive documentation
βββ hexawebshare/ # Main component library
β βββ .storybook/ # Storybook configuration
β βββ src/
β β βββ components/ # Component library
β β β βββ core/ # Core components
β β β βββ admin/ # Admin components
β β β βββ b2b/ # B2B components
β β β βββ ecommerce/# E-commerce components
β β β βββ marketing/# Marketing components
β β β βββ utility/ # Utility components
β β βββ lib/ # Library exports
β β βββ routes/ # SvelteKit showcase
β βββ package.json # Component library dependencies
βββ LICENSES/ # License files
βββ package.json # Root package (Husky setup)
βββ README.md # This file
We welcome contributions! Please read our Contributing Guide to get started.
- Read CONTRIBUTING.md
- Follow BRANCH_STRATEGY.md for branch naming
- Follow COMMIT_STRATEGY.md for commit messages
- Ensure all quality checks pass
- Add SPDX headers to new files
- Create Storybook stories for new components
- Update documentation if needed
# Feature
git checkout -b feat/add-tooltip-component
# Bug fix
git checkout -b fix/modal-close-button
# Documentation
git checkout -b docs/update-readme# Format: <type>(<scope>): <description>
git commit -m "feat(Button): add loading state prop"
git commit -m "fix(Modal): resolve focus trap issue"
git commit -m "docs(README): update installation steps"Pull requests automatically run quality checks via GitHub Actions:
- β TypeScript type checking
- β Code formatting validation
- β Build verification
- β Storybook build test
See .github/workflows/ci.yml for details.
This project is licensed under the MIT License.
SPDX-FileCopyrightText: 2025 hexaTune LLC
SPDX-License-Identifier: MIT
Built with amazing open-source technologies:
- Svelte - The web framework
- DaisyUI - Component library
- Tailwind CSS - Utility CSS framework
- Storybook - Component development
- TypeScript - Type safety
- Vite - Build tool
- Website: hexatune.com
- GitHub: hTuneSys/hexaWebShare
- Issues: Report a bug
- Discussions: Ask questions
- Email: info@hexatune.com
Built with β€οΈ by hexaTune LLC
β Star us on GitHub if you find this project useful!