{"id":49290568,"url":"https://github.com/labbhq/labb","last_synced_at":"2026-04-26T00:03:09.012Z","repository":{"id":335938740,"uuid":"1123130143","full_name":"labbhq/labb","owner":"labbhq","description":"UI for Django perfectionists with deadlines","archived":false,"fork":false,"pushed_at":"2026-04-19T22:58:51.000Z","size":1858,"stargazers_count":50,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-20T00:36:01.428Z","etag":null,"topics":["component-library","daisyui","django","django-cotton","tailwindcss","ui"],"latest_commit_sha":null,"homepage":"https://labb.io","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/labbhq.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-26T08:38:36.000Z","updated_at":"2026-03-08T23:38:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/labbhq/labb","commit_stats":null,"previous_names":["labbhq/labb"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/labbhq/labb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labbhq%2Flabb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labbhq%2Flabb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labbhq%2Flabb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labbhq%2Flabb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/labbhq","download_url":"https://codeload.github.com/labbhq/labb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labbhq%2Flabb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32280982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["component-library","daisyui","django","django-cotton","tailwindcss","ui"],"created_at":"2026-04-26T00:03:03.376Z","updated_at":"2026-04-26T00:03:09.003Z","avatar_url":"https://github.com/labbhq.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"![labb welcome kit](docs/labbdocs/static/lbdocs/img/labb/labb_welcome_kit.jpg)\n\n# labb — Django UI Component Library\n\n**labb** is a **Django UI component library** for building modern web interfaces with **django-cotton**, **Tailwind CSS**, and **daisyUI 5**. Pages render server-side with zero JavaScript by default; add **Alpine.js** interactivity on demand via the `.x` variants.\n\nIf you want a **django component library** that feels like writing HTML — not a React rewrite of your Django app — labb gives you 70+ production-ready **django ui components** you compose in templates: buttons, forms, modals, charts, navigation, data tables, and more.\n\n\u003e Build Django frontends fast, without a SPA. Server-rendered HTML, themeable design tokens, and composable components — all from your existing Django templates.\n\n## Table of contents\n\n- [Why labb](#why-labb-for-your-django-ui)\n- [Installation](#installing-labb-in-your-django-project)\n- [Quick start](#quick-start-using-labb-components-in-django-templates)\n- [Component catalog](#django-ui-components-included-in-labb)\n- [CLI](#labb-cli-for-django-developers)\n- [FAQ](#django-component-library-faq)\n- [Documentation](#documentation)\n\n## Why labb for your Django UI?\n\nDjango templates are powerful, but building a consistent UI means repeating markup on every page. **labb components** feel like native HTML tags (`\u003cc-lb.button\u003e`, `\u003cc-lb.card\u003e`, `\u003cc-lb.modal\u003e`) so you get a coherent design system without leaving Django.\n\n- **Server-side rendering Django**, not an SPA: no virtual DOM, no hydration, no client bundle for the default API.\n- **Tailwind CSS and daisyUI 5 under the hood**: themeable with CSS variables, not overridden through class soup.\n- **Composable slots**: nest `\u003cc-lb.card.body\u003e`, `\u003cc-lb.modal.action\u003e`, `\u003cc-lb.tabs.content\u003e` the way HTML is meant to be written.\n- **Alpine.js on demand**: static by default; opt into reactivity with `.x` variants (e.g. `c-lb.button.x`).\n- **Python 3.10 – 3.13**, **Django 4.2+**.\n\n```html\n\u003cc-lb.button variant=\"primary\"\u003eSave changes\u003c/c-lb.button\u003e\n\n\u003cc-lb.card border\u003e\n    \u003cc-lb.card.body\u003e\n        \u003cc-lb.card.title\u003eDjango components, done right\u003c/c-lb.card.title\u003e\n        \u003cp\u003eComposable, themeable, and fully server-rendered.\u003c/p\u003e\n        \u003cc-lb.card.actions\u003e\n            \u003cc-lb.button variant=\"primary\"\u003eGet started\u003c/c-lb.button\u003e\n        \u003c/c-lb.card.actions\u003e\n    \u003c/c-lb.card.body\u003e\n\u003c/c-lb.card\u003e\n\n\u003cc-lb.modal id=\"confirm\" withBackdrop withCloseBtn\u003e\n    \u003ch3\u003eAre you sure?\u003c/h3\u003e\n    \u003cp\u003eThis action cannot be undone.\u003c/p\u003e\n    \u003cc-lb.modal.action\u003e\n        \u003cc-lb.button variant=\"error\"\u003eDelete\u003c/c-lb.button\u003e\n    \u003c/c-lb.modal.action\u003e\n\u003c/c-lb.modal\u003e\n```\n\n## Installing labb in your Django project\n\nThe fastest way to start a new Django project with this **django component library** is `labbstart`:\n\n```bash\npip install labbstart\nlabbstart new myproject\n```\n\nThis scaffolds a complete Django project with labb, Tailwind CSS, and daisyUI pre-configured and ready to run in one command. It supports Poetry, pip, and uv, and includes a welcome page to get you oriented.\n\n### Adding labb to an existing Django project\n\n```bash\npip install labbui\n\n# With icons (Remix, Heroicons, Lucide, and more)\npip install labbui[icons]\n```\n\nAdd to your Django settings:\n\n```python\nINSTALLED_APPS = [\n    \"django_cotton\",\n    \"labb\",\n    # ...\n]\n```\n\n## Quick start: using labb components in Django templates\n\n### Buttons\n\n```html\n\u003cc-lb.button\u003eDefault\u003c/c-lb.button\u003e\n\u003cc-lb.button variant=\"primary\" size=\"lg\"\u003eLarge primary\u003c/c-lb.button\u003e\n\u003cc-lb.button variant=\"error\" btnStyle=\"outline\"\u003eDelete\u003c/c-lb.button\u003e\n\u003cc-lb.button as=\"a\" href=\"/docs\"\u003eLink styled as button\u003c/c-lb.button\u003e\n\u003cc-lb.button variant=\"success\" icon=\"rmx.check-line\"\u003eConfirm\u003c/c-lb.button\u003e\n```\n\n### Dropdown\n\n```html\n\u003cc-lb.dropdown\u003e\n    \u003cc-lb.dropdown.trigger\u003e\n        \u003cc-lb.button\u003eOptions\u003c/c-lb.button\u003e\n    \u003c/c-lb.dropdown.trigger\u003e\n    \u003cc-lb.dropdown.content\u003e\n        \u003cc-lb.menu\u003e\n            \u003cc-lb.menu.item\u003eEdit\u003c/c-lb.menu.item\u003e\n            \u003cc-lb.menu.item\u003eDuplicate\u003c/c-lb.menu.item\u003e\n            \u003cc-lb.menu.item\u003eArchive\u003c/c-lb.menu.item\u003e\n        \u003c/c-lb.menu\u003e\n    \u003c/c-lb.dropdown.content\u003e\n\u003c/c-lb.dropdown\u003e\n```\n\n### Tabs\n\n```html\n\u003cc-lb.tabs variant=\"bordered\"\u003e\n    \u003cc-lb.tabs.content label=\"Overview\" checked\u003e\n        \u003cp\u003eOverview content here.\u003c/p\u003e\n    \u003c/c-lb.tabs.content\u003e\n    \u003cc-lb.tabs.content label=\"Settings\"\u003e\n        \u003cp\u003eSettings content here.\u003c/p\u003e\n    \u003c/c-lb.tabs.content\u003e\n\u003c/c-lb.tabs\u003e\n```\n\n### Alert with icon\n\n```html\n\u003cc-lb.alert variant=\"info\" icon=\"rmx.information-line\"\u003e\n    Your changes have been saved.\n\u003c/c-lb.alert\u003e\n```\n\n## Django UI components included in labb\n\nlabb ships with 70+ **Django UI components** across eight categories. Every component is a [django-cotton](https://django-cotton.com/) tag you drop into any Django template.\n\n### Actions\n`button`, `dropdown`, `fab`, `modal`, `swap`, `theme-controller`\n\n### Data display\n`accordion`, `avatar`, `badge`, `card`, `carousel`, `chat`, `collapse`, `diff`, `hover-gallery`, `hover3d`, `kbd`, `list`, `stat`, `table`, `text`, `text-rotate`, `timeline`\n\n### Navigation\n`breadcrumbs`, `dock`, `link`, `menu`, `navbar`, `pagination`, `steps`, `tabs`\n\n### Feedback\n`alert`, `loading`, `progress`, `radial-progress`, `skeleton`, `status`, `toast`, `tooltip`\n\n### Data input (Django forms)\n`checkbox`, `fieldset`, `file-input`, `filter`, `input`, `label`, `radio`, `range`, `rating`, `select`, `textarea`, `toggle`, `validator`\n\n### Layout\n`divider`, `drawer`, `footer`, `hero`, `indicator`, `join`, `mask`, `stack`\n\n### Mockup\n`mockup-browser`, `mockup-code`, `mockup-phone`, `mockup-window`\n\n### Charts (Chart.js + daisyUI theming)\n`bar`, `bubble`, `doughnut`, `line`, `pie`, `polar-area`, `radar`, `scatter`\n\nFull API references, live examples, and copy-paste snippets for every component: **[labb.io/docs/ui](https://labb.io/docs/ui/)**.\n\n## Features of the labb component library\n\n- **Variant-driven API** — control style through props like `variant`, `size`, and `btnStyle`, not CSS class strings.\n- **Composable slots** — nest components naturally with named slots (`\u003cc-lb.card.body\u003e`, `\u003cc-lb.modal.action\u003e`).\n- **Server-rendered by default** — no JavaScript runtime, no client bundle, just Django templates and HTML.\n- **Optional Alpine.js reactivity** — `.x` variants add client-side behaviour only where you need it.\n- **Icon support** — `labbui[icons]` adds multiple icon packs with a single tag (`\u003cc-lbi n=\"rmx.heart\" /\u003e`).\n- **CLI tooling** — inspect components, search icons, build CSS, and scaffold projects from the terminal.\n- **Theme-aware** — daisyUI 5 themes, CSS variables, and dark mode work out of the box.\n- **Tested**: 70+ components, production-tested on real Django apps.\n\n## labb CLI for Django developers\n\nlabb ships with a CLI for inspecting components, searching icons, and managing your build:\n\n```bash\nlabb components inspect --list     # List all available components\nlabb components inspect button -v  # Inspect a component's API\nlabb components ex button          # View component examples\nlabb icons search \"arrow\"          # Search icon packs\nlabb build -w                      # Watch and build Tailwind/daisyUI CSS\nlabb init --defaults               # Scaffold a new project\n```\n\n## Django component library FAQ\n\n### Does labb work with HTMX?\nYes. labb renders plain HTML, so HTMX swaps drop in without any special configuration. Pair `hx-get` / `hx-post` with any `\u003cc-lb.*\u003e` component.\n\n### Do I need Alpine.js to use labb?\nNo. The default components are static HTML with CSS. Alpine.js is only loaded when you use `.x` variants (e.g. `c-lb.tabs.x`) or reactive form wire components.\n\n### How is labb different from other Django component libraries?\nlabb pairs **django-cotton**'s HTML-first syntax with **daisyUI 5**'s themeable design system and **Tailwind CSS** utilities. You get a fully themeable design system instead of a bag of unstyled primitives.\n\n### Can I use labb with my existing Tailwind config?\nYes. labb ships a content path you add to your Tailwind config. Your existing utilities, themes, and customizations keep working.\n\n### Which Django and Python versions are supported?\nPython 3.10 – 3.13 and Django 4.2+.\n\n### Is labb production-ready?\nYes. labb is MIT-licensed and used in production Django apps. See **[labb.io](https://labb.io/)** for live examples and case studies.\n\n## Documentation\n\nBrowse components, guides, and the blog at **[labb.io](https://labb.io/)** — the official **django ui components** reference for labb, django-cotton, Tailwind CSS, and daisyUI 5.\n\n- Component reference: [labb.io/docs/ui](https://labb.io/docs/ui/)\n- Getting started guide: [labb.io/docs/guide](https://labb.io/docs/guide/)\n- Blog and tutorials: [labb.io/blog](https://labb.io/blog/)\n\n## Keywords\n\nDjango UI components, Django component library, django-cotton, Tailwind CSS Django, daisyUI Django, Alpine.js Django, server-side rendering Django, Django frontend, Python UI library, Django HTMX components, Django design system.\n\n## License\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabbhq%2Flabb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flabbhq%2Flabb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabbhq%2Flabb/lists"}