|
1 | 1 | <h1 align="center">Polinema UI</h1> |
2 | 2 |
|
3 | | -An open-source UI component collection built with **Svelte 5 (Runes)** and **Tailwind CSS v4**. |
| 3 | +<br /> |
4 | 4 |
|
5 | | -Polinema UI adopts the philosophy of **shadcn/ui**—components are not installed as a monolithic dependency, but instead added directly into your codebase. Component designs and layouts are structured for enterprise applications, admin dashboards, and academic information systems (inspired by Bootstrap and Metronic conventions). |
| 5 | +<div align="center"> |
| 6 | + <img src="static/logo.png" /> |
| 7 | +</div> |
6 | 8 |
|
7 | | -> **Project Status:** We are currently building the core documentation website. The distribution package is coming soon! |
| 9 | +<br /> |
8 | 10 |
|
9 | | -## Features |
| 11 | +<p align="center"> |
| 12 | + An open-source UI component ecosystem combining the structural simplicity of Bootstrap 5 with the utility power of Tailwind CSS v4. Built on a copy-and-paste architecture for total code ownership. |
| 13 | +</p> |
10 | 14 |
|
11 | | -- **Svelte 5 Native:** Built entirely with Runes (`$state`, `$derived`, `$props`, `$effect`) for optimal reactivity and performance. |
12 | | -- **Tailwind CSS v4:** Powered by the latest Tailwind CSS v4 engine. |
13 | | -- **Dashboard-Oriented:** Structured, clean, and rigid UI elements designed specifically for data-heavy applications and admin panels. |
14 | | -- **Type Safe:** First-class TypeScript support for an enhanced developer experience. |
15 | | -- **Internationalization (i18n):** Integrated with Paraglide-js for smooth multi-language support. |
| 15 | +## Overview |
16 | 16 |
|
17 | | -## Tech Stack |
18 | | - |
19 | | -- **Framework:** [SvelteKit](https://kit.svelte.dev/) |
20 | | -- **Styling:** [Tailwind CSS v4](https://tailwindcss.com/) & [shadcn-svelte](https://shadcn-svelte.com/) |
21 | | -- **Icons:** [Hugeicons Svelte](https://hugeicons.com/) |
22 | | -- **Testing:** [Vitest](https://vitest.dev/) (Unit) & [Playwright](https://playwright.dev/) (E2E) |
23 | | -- **Code Quality:** ESLint, Prettier, and [Knip](https://knip.dev/) |
24 | | - |
25 | | -## Getting Started |
26 | | - |
27 | | -### Prerequisites |
28 | | - |
29 | | -Ensure you have **Node.js** (v18 or higher) and **npm** installed on your system. |
30 | | - |
31 | | -### Installation |
| 17 | +Polinema UI is designed for building accessible, high-performance web applications—ranging from academic portals and admin dashboards to enterprise platforms. Inspired by the **shadcn/ui** distribution model, components are not installed as a monolithic NPM dependency. Instead, you copy the component source code directly into your codebase, granting you 100% control over design, markup, and functionality. |
32 | 18 |
|
33 | | -Clone the repository: |
34 | | - |
35 | | -```bash |
36 | | -git clone https://github.com/polinema-ui/website |
37 | | -cd polinema-ui |
38 | | -``` |
| 19 | +## Philosophy |
39 | 20 |
|
40 | | -Install dependencies: |
| 21 | +Our core principle is straightforward: **the code belongs to you, not us.** |
41 | 22 |
|
42 | | -```bash |
43 | | -npm install |
44 | | -``` |
| 23 | +Monolithic package dependencies create rigid black boxes that break when custom requirements emerge. For academic institutions and enterprise systems with distinct branding or complex workflows, adaptability is mandatory. Polinema UI provides a transparent, unopinionated foundation that is easy to read, modify, and extend without theme lock-ins. |
45 | 24 |
|
46 | | -Start the development server: |
| 25 | +## Key Features |
47 | 26 |
|
48 | | -```bash |
49 | | -npm run dev |
50 | | -``` |
| 27 | +| Feature | Description | |
| 28 | +| :------------------------------ | :----------------------------------------------------------------------------------------------------- | |
| 29 | +| **Hybrid Architecture** | Merges the predictable grid layout of Bootstrap 5 with the flexibility of Tailwind CSS v4 utilities. | |
| 30 | +| **Copy & Paste Model** | Zero rigid package setup. Paste source code directly into your project and maintain full ownership. | |
| 31 | +| **Enterprise & Academic Focus** | Structured out of the box for data tables, multi-step forms, analytics dashboards, and portal systems. | |
| 32 | +| **Fully Customizable** | Unlocked styling with no restrictive design themes—modify utility classes and markup directly. | |
| 33 | +| **Type-Safe & i18n Ready** | Built with first-class TypeScript support and Paraglide-js internationalization. | |
51 | 34 |
|
52 | | -Open `http://localhost:4000` in your browser to view the documentation website. |
| 35 | +## Tech Stack |
53 | 36 |
|
54 | | -## Project Structure |
| 37 | +- **Styling Engine:** Tailwind CSS v4 & shadcn-svelte conventions |
| 38 | +- **Icons:** Hugeicons Svelte |
| 39 | +- **Internationalization:** Paraglide-js |
| 40 | +- **Validation & Testing:** Vitest (Unit) & Playwright (E2E) |
| 41 | +- **Code Quality:** ESLint, Prettier, and Knip |
55 | 42 |
|
56 | | -```text |
57 | | -├── docs/ # Documentation pages (MDSvex / .svx format) |
58 | | -├── src/ |
59 | | -│ ├── lib/ |
60 | | -│ │ ├── components/ # Atomic UI components (Button, Dialog, Sidebar, etc.) |
61 | | -│ │ ├── constants/ # Menu items and route definitions |
62 | | -│ │ ├── hooks/ # Reactive hooks and utilities |
63 | | -│ │ └── utils/ # Helper functions (class merging, etc.) |
64 | | -│ └── routes/ # SvelteKit application routes and layouts |
65 | | -``` |
| 43 | +## Getting Started |
66 | 44 |
|
67 | | -## Scripts & Verification |
| 45 | +### Prerequisites |
68 | 46 |
|
69 | | -Run these validation commands before committing changes: |
| 47 | +- Node.js (v18+) or Bun runtime |
| 48 | +- Package manager (`bun`, `pnpm`, or `npm`) |
70 | 49 |
|
71 | | -Check code formatting and linting rules: |
| 50 | +### Local Setup |
72 | 51 |
|
73 | 52 | ```bash |
74 | | -npm run lint |
75 | | -``` |
| 53 | +# Clone the repository |
| 54 | +git clone https://github.com/polinema-ui/website.git |
| 55 | +cd website |
76 | 56 |
|
77 | | -Format codebase automatically: |
| 57 | +# Install dependencies |
| 58 | +bun install |
78 | 59 |
|
79 | | -```bash |
80 | | -npm run format |
| 60 | +# Start local development server |
| 61 | +bun run dev |
81 | 62 | ``` |
82 | 63 |
|
83 | | -Run TypeScript and Svelte type-checking: |
| 64 | +Open `http://localhost:4000` in your browser to view the documentation portal. |
84 | 65 |
|
85 | | -```bash |
86 | | -npm run check |
87 | | -``` |
| 66 | +## Verification Scripts |
88 | 67 |
|
89 | | -Analyze unused files, exports, and dependencies: |
| 68 | +Execute these validation commands before committing changes: |
90 | 69 |
|
91 | | -```bash |
92 | | -npm run knip |
93 | | -``` |
| 70 | +| Command | Action | |
| 71 | +| :------------------ | :------------------------------------------------------------------------------- | |
| 72 | +| `bun run check` | Compiles Paraglide translations, syncs SvelteKit, and verifies TypeScript types. | |
| 73 | +| `bun run lint` | Audits code formatting (Prettier) and code style rules (ESLint). | |
| 74 | +| `bun run format` | Automatically formats the entire codebase. | |
| 75 | +| `bun run test:unit` | Executes unit tests via Vitest. | |
| 76 | +| `bun run knip` | Audits unused files, exports, and dependencies. | |
94 | 77 |
|
95 | | -Execute unit and end-to-end tests: |
| 78 | +## Project Structure |
96 | 79 |
|
97 | | -```bash |
98 | | -npm run test |
| 80 | +```text |
| 81 | +├── messages/ # i18n translation files |
| 82 | +├── project.inlang/ # Paraglide internationalization settings |
| 83 | +├── src/ |
| 84 | +│ ├── lib/ |
| 85 | +│ │ ├── components/ # Atomic & compound UI components |
| 86 | +│ │ ├── constants/ # Route definitions & system configurations |
| 87 | +│ │ ├── paraglide/ # Compiled multi-language runtime |
| 88 | +│ │ └── utils/ # Helper utilities & class merging logic |
| 89 | +│ └── routes/ # Application routes and documentation pages |
99 | 90 | ``` |
100 | 91 |
|
101 | 92 | ## Contributing |
102 | 93 |
|
103 | | -Contributions are welcome! Whether you are fixing documentation typos, reporting bugs, or building new components, please read our [CONTRIBUTING.md](./CONTRIBUTING.md) guide before submitting a pull request. |
104 | | - |
105 | | -## License |
106 | | - |
107 | | -This project is licensed under the **MIT License**. See the [LICENSE](./LICENSE) file for details. |
| 94 | +Contributions are welcome! Please review our [CONTRIBUTING.md](./CONTRIBUTING.md) guide before submitting pull requests. |
108 | 95 |
|
109 | 96 | ## Maintainers |
110 | 97 |
|
111 | 98 | - [@a6iyyu](https://github.com/a6iyyu) |
112 | 99 | - [@ckckckcz](https://github.com/ckckckcz) |
| 100 | + |
| 101 | +## License |
| 102 | + |
| 103 | +Distributed under the **MIT License**. See [LICENSE](./LICENSE) for details. |
0 commit comments