labbdocs 0.3.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {labbdocs-0.3.0 → labbdocs-0.4.0}/PKG-INFO +10 -10
- {labbdocs-0.3.0 → labbdocs-0.4.0}/README.md +9 -9
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/blog/index.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/blog/posts/1_introducing-labb-and-the-roadmap.md +3 -2
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/guide/1_getting_started/1_introduction.md +8 -5
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/guide/1_getting_started/2_installation.md +27 -5
- labbdocs-0.4.0/labbdocs/content/guide/1_getting_started/3_changelog.md +89 -0
- labbdocs-0.4.0/labbdocs/content/guide/1_getting_started/4_roadmap.md +90 -0
- labbdocs-0.4.0/labbdocs/content/guide/1_getting_started/5_credits.md +39 -0
- labbdocs-0.4.0/labbdocs/content/guide/2_concepts/1_reactivity.md +98 -0
- labbdocs-0.3.0/labbdocs/content/guide/2_concepts/1_theming.md → labbdocs-0.4.0/labbdocs/content/guide/2_concepts/2_theming.md +3 -2
- labbdocs-0.3.0/labbdocs/content/guide/2_concepts/2_building_css.md → labbdocs-0.4.0/labbdocs/content/guide/2_concepts/3_building_css.md +3 -2
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/guide/3_references/0_labb_cli.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/guide/3_references/1_config_yaml.md +2 -1
- labbdocs-0.4.0/labbdocs/content/guide/3_references/2_django_settings.md +106 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/guide/3_references/3_lb_tags.md +19 -1
- labbdocs-0.4.0/labbdocs/content/guide/3_references/4_c-lb.m.md +54 -0
- labbdocs-0.4.0/labbdocs/content/guide/3_references/5_window_lb.md +77 -0
- labbdocs-0.3.0/labbdocs/content/guide/3_references/5_llms.txt.md → labbdocs-0.4.0/labbdocs/content/guide/3_references/6_llms.txt.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/guide/index.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/icons/1_getting_started/1_introduction.md +3 -2
- labbdocs-0.4.0/labbdocs/content/icons/2_packs/1_remix.md +15 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/icons/index.md +2 -1
- labbdocs-0.4.0/labbdocs/content/ui/1_actions/button.md +50 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/1_actions/dropdown.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/1_actions/fab.md +3 -2
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/1_actions/modal.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/1_actions/swap.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/1_actions/theme-controller.md +4 -3
- labbdocs-0.4.0/labbdocs/content/ui/2_data_display/accordion.md +34 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/avatar.md +5 -2
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/badge.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/card.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/carousel.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/chat.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/collapse.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/diff.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/2_data_display/hover-gallery.md +23 -0
- labbdocs-0.4.0/labbdocs/content/ui/2_data_display/hover3d.md +24 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/kbd.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/2_data_display/list.md +23 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/stat.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/table.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/text-rotate.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/text.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/2_data_display/timeline.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/3_navigation/breadcrumbs.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/3_navigation/dock.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/3_navigation/link.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/3_navigation/menu.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/3_navigation/navbar.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/3_navigation/pagination.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/3_navigation/steps.md +32 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/3_navigation/tabs.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/4_feedback/alert.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/4_feedback/loading.md +23 -0
- labbdocs-0.4.0/labbdocs/content/ui/4_feedback/progress.md +23 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/4_feedback/radial-progress.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/4_feedback/skeleton.md +23 -0
- labbdocs-0.4.0/labbdocs/content/ui/4_feedback/status.md +23 -0
- labbdocs-0.4.0/labbdocs/content/ui/4_feedback/toast.md +20 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/4_feedback/tooltip.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/5_data_input/checkbox.md +26 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/5_data_input/fieldset.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/5_data_input/file-input.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/5_data_input/filter.md +26 -0
- labbdocs-0.4.0/labbdocs/content/ui/5_data_input/input.md +26 -0
- labbdocs-0.4.0/labbdocs/content/ui/5_data_input/label.md +20 -0
- labbdocs-0.4.0/labbdocs/content/ui/5_data_input/radio.md +23 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/5_data_input/range.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/5_data_input/rating.md +26 -0
- labbdocs-0.4.0/labbdocs/content/ui/5_data_input/select.md +23 -0
- labbdocs-0.4.0/labbdocs/content/ui/5_data_input/textarea.md +23 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/5_data_input/toggle.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/5_data_input/validator.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/6_layout/divider.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/6_layout/drawer.md +7 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/6_layout/footer.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/6_layout/hero.md +4 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/6_layout/indicator.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/6_layout/join.md +23 -0
- labbdocs-0.4.0/labbdocs/content/ui/6_layout/mask.md +20 -0
- labbdocs-0.4.0/labbdocs/content/ui/6_layout/stack.md +20 -0
- labbdocs-0.4.0/labbdocs/content/ui/7_mockup/mockup-browser.md +17 -0
- labbdocs-0.4.0/labbdocs/content/ui/7_mockup/mockup-code.md +20 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/7_mockup/mockup-phone.md +4 -1
- labbdocs-0.4.0/labbdocs/content/ui/7_mockup/mockup-window.md +17 -0
- labbdocs-0.4.0/labbdocs/content/ui/8_charts/0_charts.md +121 -0
- labbdocs-0.4.0/labbdocs/content/ui/8_charts/bar.md +36 -0
- labbdocs-0.4.0/labbdocs/content/ui/8_charts/bubble.md +16 -0
- labbdocs-0.4.0/labbdocs/content/ui/8_charts/doughnut.md +19 -0
- labbdocs-0.4.0/labbdocs/content/ui/8_charts/line.md +28 -0
- labbdocs-0.4.0/labbdocs/content/ui/8_charts/pie.md +19 -0
- labbdocs-0.4.0/labbdocs/content/ui/8_charts/polar_area.md +22 -0
- labbdocs-0.4.0/labbdocs/content/ui/8_charts/radar.md +19 -0
- labbdocs-0.4.0/labbdocs/content/ui/8_charts/scatter.md +20 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/ui/index.md +2 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/doc_parser.py +12 -2
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/seo_utils.py +15 -11
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/api_table.html +10 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/codeblock/index.html +1 -1
- labbdocs-0.4.0/labbdocs/templates/cotton/lbdocs/component_example/style/inline.html +11 -0
- labbdocs-0.4.0/labbdocs/templates/cotton/lbdocs/icon/alpine.html +6 -0
- labbdocs-0.4.0/labbdocs/templates/cotton/lbdocs/icon/cotton.html +5 -0
- labbdocs-0.4.0/labbdocs/templates/cotton/lbdocs/icon/django.html +1 -0
- labbdocs-0.4.0/labbdocs/templates/cotton/lbdocs/icon/tailwind.html +1 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/labbstart_info/index.html +1 -1
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/layout/base.html +31 -0
- labbdocs-0.4.0/labbdocs/templates/cotton/lbdocs/nav/footer.html +68 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/nav/topnav.html +15 -9
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/views.py +14 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/pyproject.toml +1 -1
- labbdocs-0.3.0/labbdocs/content/guide/3_references/2_django_settings.md +0 -78
- labbdocs-0.3.0/labbdocs/content/guide/3_references/4_c-lb.m.md +0 -48
- labbdocs-0.3.0/labbdocs/content/icons/2_packs/1_remix.md +0 -14
- labbdocs-0.3.0/labbdocs/content/ui/1_actions/button.md +0 -38
- labbdocs-0.3.0/labbdocs/content/ui/2_data_display/accordion.md +0 -30
- labbdocs-0.3.0/labbdocs/content/ui/2_data_display/hover-gallery.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/2_data_display/hover3d.md +0 -21
- labbdocs-0.3.0/labbdocs/content/ui/2_data_display/list.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/3_navigation/steps.md +0 -26
- labbdocs-0.3.0/labbdocs/content/ui/4_feedback/loading.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/4_feedback/progress.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/4_feedback/skeleton.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/4_feedback/status.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/4_feedback/toast.md +0 -17
- labbdocs-0.3.0/labbdocs/content/ui/5_data_input/checkbox.md +0 -23
- labbdocs-0.3.0/labbdocs/content/ui/5_data_input/filter.md +0 -23
- labbdocs-0.3.0/labbdocs/content/ui/5_data_input/input.md +0 -23
- labbdocs-0.3.0/labbdocs/content/ui/5_data_input/label.md +0 -17
- labbdocs-0.3.0/labbdocs/content/ui/5_data_input/radio.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/5_data_input/rating.md +0 -23
- labbdocs-0.3.0/labbdocs/content/ui/5_data_input/select.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/5_data_input/textarea.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/6_layout/join.md +0 -20
- labbdocs-0.3.0/labbdocs/content/ui/6_layout/mask.md +0 -17
- labbdocs-0.3.0/labbdocs/content/ui/6_layout/stack.md +0 -17
- labbdocs-0.3.0/labbdocs/content/ui/7_mockup/mockup-browser.md +0 -14
- labbdocs-0.3.0/labbdocs/content/ui/7_mockup/mockup-code.md +0 -17
- labbdocs-0.3.0/labbdocs/content/ui/7_mockup/mockup-window.md +0 -14
- labbdocs-0.3.0/labbdocs/templates/cotton/lbdocs/component_example/style/inline.html +0 -17
- labbdocs-0.3.0/labbdocs/templates/cotton/lbdocs/nav/footer.html +0 -23
- {labbdocs-0.3.0 → labbdocs-0.4.0}/LICENSE +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/__init__.py +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/apps.py +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/icons/2_packs/more.md +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/management/__init__.py +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/management/commands/__init__.py +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/management/commands/build_docs.py +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/css/highlight-custom.css +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/css/highlight.min.css +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/labb/favicon/android-chrome-192x192.png +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/labb/favicon/android-chrome-512x512.png +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/labb/favicon/apple-touch-icon.png +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/labb/favicon/favicon-16x16.png +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/labb/favicon/favicon-32x32.png +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/labb/favicon/favicon.ico +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/labb/favicon/favicon.svg +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/labb/favicon/site.webmanifest +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/labb/labb_welcome_kit.jpg +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/stock/avatar.png +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/stock/mecca.jpg +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/img/stock/shoe.jpg +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/js/common.js +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/static/lbdocs/js/highlight.min.js +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/icon_category_section.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/codeblock/title.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/component_example/index.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/component_example/section/code.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/component_example/section/preview.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/component_example/style/code_only.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/component_example/style/stacked.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/component_example/style/tab.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/doc_card/grid.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/doc_card/index.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/icon/browser.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/icon/category_section.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/icon/daisy_ui.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/indented_block.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/layout/docs/base.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/layout/docs/blog.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/layout/docs/blog_header.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/layout/docs/component.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/layout/docs/header.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/misc/copy_button.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/nav/page_navigator.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/seo/head.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/cotton/lbdocs/ui/logo.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templates/lbdocs/pages/docs.html +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templatetags/__init__.py +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/templatetags/docs_tags.py +0 -0
- {labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/urls.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: labbdocs
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Documentation for the labb project
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -33,19 +33,19 @@ Description-Content-Type: text/markdown
|
|
|
33
33
|
|
|
34
34
|
# labbdocs
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
**labbdocs** packages the [labb.io](https://labb.io/) documentation as a Django app: UI component reference, guides, icons, and blog — all powered by **labb**, **django-cotton**, **Tailwind CSS**, and **daisyUI 5**.
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
The public site at [https://labb.io/](https://labb.io/) runs this app alongside the labb marketing pages. Install **labbdocs** in your own Django project if you want to embed or mirror that docs experience.
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## Install the labbdocs package
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
43
|
pip install labbdocs
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
##
|
|
46
|
+
## Integrate labbdocs into Django
|
|
47
47
|
|
|
48
|
-
### 1. Add to INSTALLED_APPS
|
|
48
|
+
### 1. Add labbdocs to INSTALLED_APPS
|
|
49
49
|
|
|
50
50
|
Add `labbdocs` to your Django project's `INSTALLED_APPS`:
|
|
51
51
|
|
|
@@ -57,9 +57,9 @@ INSTALLED_APPS = [
|
|
|
57
57
|
]
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
### 2. Configure LABB_DOCS
|
|
60
|
+
### 2. Configure LABB_DOCS in settings
|
|
61
61
|
|
|
62
|
-
Set up your documentation configuration in
|
|
62
|
+
Set up your documentation configuration in Django settings:
|
|
63
63
|
|
|
64
64
|
```python
|
|
65
65
|
# settings.py
|
|
@@ -83,7 +83,7 @@ LABB_DOCS = {
|
|
|
83
83
|
}
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
### 3. Include URLs
|
|
86
|
+
### 3. Include labbdocs URLs
|
|
87
87
|
|
|
88
88
|
Add labbdocs URLs to your main URL configuration:
|
|
89
89
|
|
|
@@ -97,7 +97,7 @@ urlpatterns = [
|
|
|
97
97
|
]
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
### 4. Build
|
|
100
|
+
### 4. Build documentation
|
|
101
101
|
|
|
102
102
|
Use the management command to build your documentation:
|
|
103
103
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# labbdocs
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**labbdocs** packages the [labb.io](https://labb.io/) documentation as a Django app: UI component reference, guides, icons, and blog — all powered by **labb**, **django-cotton**, **Tailwind CSS**, and **daisyUI 5**.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The public site at [https://labb.io/](https://labb.io/) runs this app alongside the labb marketing pages. Install **labbdocs** in your own Django project if you want to embed or mirror that docs experience.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Install the labbdocs package
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
pip install labbdocs
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Integrate labbdocs into Django
|
|
14
14
|
|
|
15
|
-
### 1. Add to INSTALLED_APPS
|
|
15
|
+
### 1. Add labbdocs to INSTALLED_APPS
|
|
16
16
|
|
|
17
17
|
Add `labbdocs` to your Django project's `INSTALLED_APPS`:
|
|
18
18
|
|
|
@@ -24,9 +24,9 @@ INSTALLED_APPS = [
|
|
|
24
24
|
]
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
### 2. Configure LABB_DOCS
|
|
27
|
+
### 2. Configure LABB_DOCS in settings
|
|
28
28
|
|
|
29
|
-
Set up your documentation configuration in
|
|
29
|
+
Set up your documentation configuration in Django settings:
|
|
30
30
|
|
|
31
31
|
```python
|
|
32
32
|
# settings.py
|
|
@@ -50,7 +50,7 @@ LABB_DOCS = {
|
|
|
50
50
|
}
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
### 3. Include URLs
|
|
53
|
+
### 3. Include labbdocs URLs
|
|
54
54
|
|
|
55
55
|
Add labbdocs URLs to your main URL configuration:
|
|
56
56
|
|
|
@@ -64,7 +64,7 @@ urlpatterns = [
|
|
|
64
64
|
]
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
### 4. Build
|
|
67
|
+
### 4. Build documentation
|
|
68
68
|
|
|
69
69
|
Use the management command to build your documentation:
|
|
70
70
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: labb blog
|
|
3
|
-
description: labb blog
|
|
3
|
+
description: "labb blog: Django UI tutorials, releases, and opinions on django-cotton, Tailwind CSS, and daisyUI. Updates from the labb.io team."
|
|
4
|
+
keywords: "labb blog, django ui blog, django components tutorial, labb.io, django-cotton news"
|
|
4
5
|
doc_show_toc: false
|
|
5
6
|
doc_hide_title: true
|
|
6
7
|
doc_hide_drawer: true
|
{labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/blog/posts/1_introducing-labb-and-the-roadmap.md
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Introducing labb, and the roadmap
|
|
3
|
-
description: Meet labb
|
|
3
|
+
description: "Meet labb, a Django UI component library built with django-cotton and daisyUI. Our roadmap for components, docs, and the labb.io django component library."
|
|
4
|
+
keywords: "labb django, django component library, django-cotton, daisyui django, labb roadmap, django ui components"
|
|
4
5
|
published_time: 2025-12-29
|
|
5
6
|
modified_time: 2025-12-29
|
|
6
7
|
author: zadiq
|
|
@@ -57,6 +58,6 @@ Pre-built templates and components to kickstart your Django projects even faster
|
|
|
57
58
|
|
|
58
59
|
labb is just getting started, and your feedback is invaluable. Try it out in your projects, share your thoughts, share with other developers, and let me know what features and components you need most. Together, we can make building modern Django applications faster and more enjoyable.
|
|
59
60
|
|
|
60
|
-
Get involved by joining our [GitHub Discussions](https://github.com/labbhq/labb/discussions)
|
|
61
|
+
Get involved by joining our [GitHub Discussions](https://github.com/labbhq/labb/discussions).
|
|
61
62
|
|
|
62
63
|
Happy labbing! 🚀
|
{labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/guide/1_getting_started/1_introduction.md
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Introduction
|
|
3
|
-
description:
|
|
3
|
+
description: "labb is a Django UI component library: build interfaces with django-cotton, Tailwind CSS, and daisyUI 5. Server-rendered HTML, optional Alpine.js, 50+ components."
|
|
4
|
+
keywords: "django ui components, django component library, django-cotton, labb django, tailwind django, daisyui django, django frontend"
|
|
4
5
|
doc_show_toc: False
|
|
5
6
|
---
|
|
6
7
|
{% load static %}
|
|
@@ -42,20 +43,22 @@ doc_show_toc: False
|
|
|
42
43
|
|
|
43
44
|
**Developer Friendly** — Powerful CLI for setup, component inspection, and AI-assisted development. Works seamlessly with Cursor, VSCode Copilot, and other AI tools.
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
**Reactive When You Need It** — Components are zero-JS by default. Add Alpine.js interactivity with `.x` variants on a per-component basis. No bundler, no build step, nothing loads unless you use it.
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
## Django UI Components Included
|
|
49
|
+
|
|
50
|
+
- **50+ Components** — Buttons, cards, modals, drawers, forms, and more
|
|
48
51
|
- **Extensive examples** — Each component has multiple examples with different variations and use cases
|
|
49
52
|
- **Icon Libraries** — 2,800+ Remix icons and more via optional `labbicons` package
|
|
50
53
|
- **Theme Support** — Light, dark, and custom themes out of the box
|
|
51
54
|
- **Zero Config** — `labb init --defaults` and you're ready to go
|
|
52
55
|
- **No JavaScript Build Step** — Components work without JavaScript by default
|
|
56
|
+
- **Opt-in Reactivity** — Alpine.js-powered `.x` variants for runtime prop changes, zero overhead on pages that don't use them
|
|
53
57
|
- **CLI Tool** — `labb` command for project setup, component inspection, and AI-assisted development
|
|
54
58
|
|
|
55
59
|
|
|
56
|
-
##
|
|
60
|
+
## Coming Soon
|
|
57
61
|
|
|
58
62
|
- IDE extensions for autocomplete and documentation
|
|
59
63
|
- More icon packs
|
|
60
|
-
- Seamless integration with AlpineJS for interactive component properties
|
|
61
64
|
- Starter kits, blocks and templates.
|
{labbdocs-0.3.0 → labbdocs-0.4.0}/labbdocs/content/guide/1_getting_started/2_installation.md
RENAMED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Installation
|
|
3
|
-
description:
|
|
3
|
+
description: "Install labb in new or existing Django projects: labbstart for greenfield apps, or pip install labbui with django-cotton. Tailwind CSS and daisyUI 5 ready."
|
|
4
|
+
keywords: "install labb django, labb django setup, django-cotton install, labbstart, pip labbui, tailwind django project"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
{% load docs_tags %}
|
|
7
8
|
|
|
8
|
-
## New Project
|
|
9
|
+
## New Django Project with labbstart
|
|
9
10
|
|
|
10
11
|
The fastest way to get started is with **labbstart**, which scaffolds a new Django project with labb pre-configured.
|
|
11
12
|
|
|
@@ -146,7 +147,7 @@ Add `<c-lb.m.dependencies />` to your base template's `<head>` section:
|
|
|
146
147
|
{% endverbatim %}
|
|
147
148
|
</c-lbdocs.codeblock.title>
|
|
148
149
|
|
|
149
|
-
<c-lb.alert variant="warning"
|
|
150
|
+
<c-lb.alert variant="warning" alertStyle="outline" class="mt-4">
|
|
150
151
|
<span>Without `<c-lb.m.dependencies />`, components will not have the correct styling and interactive features may not work.</span>
|
|
151
152
|
</c-lb.alert>
|
|
152
153
|
|
|
@@ -187,9 +188,30 @@ Use labb components in your templates with HTML-like syntax:
|
|
|
187
188
|
|
|
188
189
|
Browse <a href="{% doc_url '1_actions/button.md' 'ui' %}">component documentation</a> for all available components.
|
|
189
190
|
|
|
191
|
+
### Reactive Components
|
|
192
|
+
|
|
193
|
+
Add `.x` to any component name to get a reactive twin. Props can be changed at runtime using Alpine.js:
|
|
194
|
+
|
|
195
|
+
<c-lbdocs.codeblock.title title="templates/example.html">
|
|
196
|
+
{% verbatim %}
|
|
197
|
+
```html
|
|
198
|
+
<div x-data="{ btn: { variant: 'primary' } }">
|
|
199
|
+
<c-lb.button.x x-model="btn" variant="primary">
|
|
200
|
+
<span x-text="btn.variant"></span> button
|
|
201
|
+
</c-lb.button.x>
|
|
202
|
+
|
|
203
|
+
<c-lb.button variant="ghost" @click="btn.variant = 'success'">Change</c-lb.button>
|
|
204
|
+
</div>
|
|
205
|
+
```
|
|
206
|
+
{% endverbatim %}
|
|
207
|
+
</c-lbdocs.codeblock.title>
|
|
208
|
+
|
|
209
|
+
See the <a href="{% doc_url '2_concepts/1_reactivity.md' 'guide' %}">Reactivity guide</a> for the full picture.
|
|
210
|
+
|
|
190
211
|
## Next Steps
|
|
191
212
|
|
|
192
|
-
- <a href="{% doc_url '2_concepts/
|
|
193
|
-
- <a href="{% doc_url '2_concepts/
|
|
213
|
+
- <a href="{% doc_url '2_concepts/2_theming.md' 'guide' %}">Theming</a> — Customize colors and themes
|
|
214
|
+
- <a href="{% doc_url '2_concepts/3_building_css.md' 'guide' %}">Building CSS</a> — CSS build process and production builds
|
|
215
|
+
- <a href="{% doc_url '2_concepts/1_reactivity.md' 'guide' %}">Reactivity</a> — Add Alpine.js-powered interactivity to components with `.x` variants
|
|
194
216
|
- <a href="{% doc_url '3_references/0_labb_cli.md' 'guide' %}">CLI Reference</a> — Component inspection, icon search, and more
|
|
195
217
|
- <a href="{% doc_url '1_getting_started/1_introduction.md' 'icons' %}">Icons</a> — Install labbicons for 2,800+ Remix icons
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Changelog
|
|
3
|
+
description: "Release history and version notes for labb: django component library, labbui, and labbdocs."
|
|
4
|
+
keywords: "labb changelog, labbui release notes, django labb versions"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
{% load docs_tags %}
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 0.4.0 <c-lb.badge size="sm">latest</c-lb.badge>
|
|
11
|
+
|
|
12
|
+
**Apr 19, 2026**
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
- **AlpineJS integration** — opt-in client-side reactivity via `.x` component variants (e.g. `<c-lb.button.x>`). Alpine is only injected when a reactive variant is used; static pages stay zero-JS. New `window.lb` helpers (`extendComponent`, `lbProps`) for extending reactive components. ([#31](https://github.com/labbhq/labb/issues/31))
|
|
16
|
+
- **Charts** — new Chart.js-backed components (`chart.bar`, `chart.line`, `chart.pie`, `chart.doughnut`, `chart.radar`, `chart.polar-area`, `chart.scatter`, `chart.bubble`) with live DaisyUI theming, auto-palette colouring, `-light` translucent variants, and `x-model` reactivity. `<c-lb.chart />` page-level provider for global Chart.js config.
|
|
17
|
+
- **Icons** — added ~85 new Remix icons (AI/ML, signal, chat, painting, network, chart, misc).
|
|
18
|
+
|
|
19
|
+
### Fixes
|
|
20
|
+
- **Alert** — renamed the `style` prop to `alertStyle` to avoid clashing with the HTML `style` attribute on cotton passthrough.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 0.3.0
|
|
25
|
+
|
|
26
|
+
**Mar 08, 2026**
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
- Full daisyUI components support 🎉
|
|
31
|
+
- Restructure of docs for better readability
|
|
32
|
+
- Introduction of props modifiers for icon props in supported components. See components like button, badge, etc.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 0.2.0
|
|
37
|
+
|
|
38
|
+
**Feb 09, 2026**
|
|
39
|
+
|
|
40
|
+
### Features
|
|
41
|
+
- **labbstart** — Starter kit scaffolding tool ([#20](https://github.com/labbhq/labb/issues/20))
|
|
42
|
+
- **Breadcrumbs** — New breadcrumbs component ([#25](https://github.com/labbhq/labb/issues/25))
|
|
43
|
+
- **Carousel** — New carousel component ([#27](https://github.com/labbhq/labb/issues/27))
|
|
44
|
+
|
|
45
|
+
### Maintenance
|
|
46
|
+
- Enhanced README ([#22](https://github.com/labbhq/labb/issues/22))
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 0.1.1
|
|
51
|
+
|
|
52
|
+
**Jan 03, 2026**
|
|
53
|
+
|
|
54
|
+
### Maintenance
|
|
55
|
+
- Documentation site cleanup ([#14](https://github.com/labbhq/labb/issues/14))
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 0.1.0
|
|
60
|
+
|
|
61
|
+
**Dec 30, 2025**
|
|
62
|
+
|
|
63
|
+
Initial stable release.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 0.0.2
|
|
68
|
+
|
|
69
|
+
**Dec 30, 2025**
|
|
70
|
+
|
|
71
|
+
### Maintenance
|
|
72
|
+
- Blog post support for docs ([#2](https://github.com/labbhq/labb/issues/2))
|
|
73
|
+
- Community menu ([#4](https://github.com/labbhq/labb/issues/4))
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 0.0.1a2
|
|
78
|
+
|
|
79
|
+
**Oct 29, 2025**
|
|
80
|
+
|
|
81
|
+
Alpha pre-release with early feature and bug fix work.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 0.0.1a
|
|
86
|
+
|
|
87
|
+
**Oct 26, 2025**
|
|
88
|
+
|
|
89
|
+
First alpha pre-release.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Roadmap
|
|
3
|
+
description: "labb roadmap: planned django ui components, tooling, and docs for the django component library toward v1."
|
|
4
|
+
keywords: "labb roadmap, django ui roadmap, labb future features"
|
|
5
|
+
doc_show_toc: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Roadmap to v1.0.0
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
This roadmap outlines the planned direction for labb. Priorities may shift based on community feedback. Have a feature request? Open a discussion on [GitHub](https://github.com/labbhq/labb/discussions).
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
<div class="not-prose">
|
|
15
|
+
<c-lb.timeline direction="vertical" snap compact>
|
|
16
|
+
<c-lb.timeline.item first variant="success" icon="rmx.checkbox-circle">
|
|
17
|
+
<c-slot name="endSlot">
|
|
18
|
+
<c-lb.timeline.end box class="my-6">
|
|
19
|
+
<span class="font-bold">v0.3.0</span>
|
|
20
|
+
<p class="text-sm">Full daisyUI components support</p>
|
|
21
|
+
</c-lb.timeline.end>
|
|
22
|
+
</c-slot>
|
|
23
|
+
</c-lb.timeline.item>
|
|
24
|
+
<c-lb.timeline.item variant="success" icon="rmx.checkbox-circle">
|
|
25
|
+
<c-slot name="endSlot">
|
|
26
|
+
<c-lb.timeline.end box class="my-6">
|
|
27
|
+
<span class="font-bold">v0.4.0</span>
|
|
28
|
+
<p class="text-sm">AlpineJS integration and Charts</p>
|
|
29
|
+
</c-lb.timeline.end>
|
|
30
|
+
</c-slot>
|
|
31
|
+
</c-lb.timeline.item>
|
|
32
|
+
<c-lb.timeline.item variant="warning" icon="rmx.loader-4">
|
|
33
|
+
<c-slot name="endSlot">
|
|
34
|
+
<c-lb.timeline.end box class="my-6">
|
|
35
|
+
<span class="font-bold">IDE extensions</span>
|
|
36
|
+
<p class="text-sm">Autocomplete and inline documentation</p>
|
|
37
|
+
</c-lb.timeline.end>
|
|
38
|
+
</c-slot>
|
|
39
|
+
</c-lb.timeline.item>
|
|
40
|
+
<c-lb.timeline.item icon="rmx.time">
|
|
41
|
+
<c-slot name="endSlot">
|
|
42
|
+
<c-lb.timeline.end box class="my-6">
|
|
43
|
+
<span class="font-bold">labbwire</span>
|
|
44
|
+
<p class="text-sm">HTML over the wire, the Django (cotton) way</p>
|
|
45
|
+
</c-lb.timeline.end>
|
|
46
|
+
</c-slot>
|
|
47
|
+
</c-lb.timeline.item>
|
|
48
|
+
<c-lb.timeline.item icon="rmx.time">
|
|
49
|
+
<c-slot name="endSlot">
|
|
50
|
+
<c-lb.timeline.end box class="my-6">
|
|
51
|
+
<span class="font-bold">Playground</span>
|
|
52
|
+
<p class="text-sm">Testing and experimenting with components</p>
|
|
53
|
+
</c-lb.timeline.end>
|
|
54
|
+
</c-slot>
|
|
55
|
+
</c-lb.timeline.item>
|
|
56
|
+
<c-lb.timeline.item icon="rmx.time">
|
|
57
|
+
<c-slot name="endSlot">
|
|
58
|
+
<c-lb.timeline.end box class="my-6">
|
|
59
|
+
<span class="font-bold">Blocks and templates</span>
|
|
60
|
+
<p class="text-sm">Pre-built page sections and full page layouts</p>
|
|
61
|
+
</c-lb.timeline.end>
|
|
62
|
+
</c-slot>
|
|
63
|
+
</c-lb.timeline.item>
|
|
64
|
+
<c-lb.timeline.item icon="rmx.time">
|
|
65
|
+
<c-slot name="endSlot">
|
|
66
|
+
<c-lb.timeline.end box class="my-6">
|
|
67
|
+
<span class="font-bold">More icon packs</span>
|
|
68
|
+
<p class="text-sm">Additional icon libraries beyond Remix Icons</p>
|
|
69
|
+
</c-lb.timeline.end>
|
|
70
|
+
</c-slot>
|
|
71
|
+
</c-lb.timeline.item>
|
|
72
|
+
<c-lb.timeline.item icon="rmx.time">
|
|
73
|
+
<c-slot name="endSlot">
|
|
74
|
+
<c-lb.timeline.end box class="my-6">
|
|
75
|
+
<span class="font-bold">Advanced components</span>
|
|
76
|
+
<p class="text-sm">Date pickers, calendars, rich text editors, file upload, forms</p>
|
|
77
|
+
</c-lb.timeline.end>
|
|
78
|
+
</c-slot>
|
|
79
|
+
</c-lb.timeline.item>
|
|
80
|
+
|
|
81
|
+
<c-lb.timeline.item last icon="rmx.time">
|
|
82
|
+
<c-slot name="endSlot">
|
|
83
|
+
<c-lb.timeline.end box class="my-6">
|
|
84
|
+
<span class="font-bold">Starter kits</span>
|
|
85
|
+
<p class="text-sm">Pre-built project templates for common use cases</p>
|
|
86
|
+
</c-lb.timeline.end>
|
|
87
|
+
</c-slot>
|
|
88
|
+
</c-lb.timeline.item>
|
|
89
|
+
</c-lb.timeline>
|
|
90
|
+
</div>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Credits
|
|
3
|
+
description: "Credits: Django, django-cotton, Tailwind CSS, daisyUI, Alpine.js, and projects behind the labb django component library."
|
|
4
|
+
keywords: "labb credits, django-cotton credits, daisyui tailwind django"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
{% load docs_tags %}
|
|
8
|
+
|
|
9
|
+
labb is built on the shoulders of excellent open source projects.
|
|
10
|
+
|
|
11
|
+
## Core Dependencies
|
|
12
|
+
|
|
13
|
+
- **[Django](https://www.djangoproject.com/)** — The web framework that powers everything
|
|
14
|
+
- **[Django Cotton](https://django-cotton.com/)** — Component syntax and template loader that makes `<c-lb.*>` possible
|
|
15
|
+
- **[daisyUI](https://daisyui.com/)** — Component classes and theming for Tailwind CSS
|
|
16
|
+
- **[Tailwind CSS](https://tailwindcss.com/)** — Utility-first CSS framework
|
|
17
|
+
|
|
18
|
+
## CLI and Tooling
|
|
19
|
+
|
|
20
|
+
- **[Typer](https://typer.tiangolo.com/)** — CLI framework powering the `labb` command
|
|
21
|
+
- **[Rich](https://rich.readthedocs.io/)** — Terminal formatting and output
|
|
22
|
+
|
|
23
|
+
## Icons
|
|
24
|
+
|
|
25
|
+
- **[Remix Icon](https://remixicon.com/)** — 2,800+ open source icons included via `labbicons`
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Similar Projects
|
|
31
|
+
|
|
32
|
+
- **[shadcn-django](https://shadcn-django.com/)** — shadcn/ui components for Django
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## License
|
|
38
|
+
|
|
39
|
+
labb is released under the [MIT License](https://github.com/labbhq/labb/blob/main/LICENSE).
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Reactivity"
|
|
3
|
+
description: "Alpine.js reactivity in labb Django components: use `.x` variants for runtime props; no JS by default. django-cotton, Tailwind CSS, and daisyUI 5 compatible."
|
|
4
|
+
keywords: "labb alpine.js django, django reactivity, django-cotton alpine, labb .x component, server-side rendering django"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
{% load docs_tags %}
|
|
8
|
+
|
|
9
|
+
labb is zero-JS by default, but components are integrated with [Alpine.js](https://alpinejs.dev/) to provide reactivity. This is available through the `.x` twin of each component, letting you change visual props at runtime without a page reload. Alpine is only loaded on pages where a `.x` component is used.
|
|
10
|
+
|
|
11
|
+
## The `.x` variant
|
|
12
|
+
|
|
13
|
+
Every reactive-capable component has an `.x` version. For example, `<c-lb.button.x>` is the reactive twin of `<c-lb.button>`. Drop it in as a replacement. The server still renders the initial HTML, and Alpine takes over from there:
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<!-- Before: plain server-rendered button -->
|
|
17
|
+
<c-lb.button variant="primary" size="lg">Save</c-lb.button>
|
|
18
|
+
|
|
19
|
+
<!-- After: same output, but now Alpine-powered -->
|
|
20
|
+
<c-lb.button.x variant="primary" size="lg">Save</c-lb.button.x>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
### Initial props
|
|
26
|
+
|
|
27
|
+
Pass props as HTML attributes on the `.x` component, the same as the regular version. They seed the initial server render and are also read by Alpine as the starting state:
|
|
28
|
+
|
|
29
|
+
<c-lbdocs.component_example path="button/reactive-initial" style="inline" />
|
|
30
|
+
|
|
31
|
+
### Changing props at runtime
|
|
32
|
+
|
|
33
|
+
To change props at runtime, bind an object containing props to the `.x` component using `x-model`. The object can live anywhere Alpine can see it: inline `x-data`, a registered `Alpine.data` component, or any ancestor scope.
|
|
34
|
+
|
|
35
|
+
<c-lb.alert variant="info" alertStyle="outline" class="text-sm mb-6">
|
|
36
|
+
<span> Not every prop can be changed reactively. In the API table, reactive props are marked with a <c-lbi n="rmx.flashlight" w="0.85em" h="0.85em" class="text-warning inline align-middle" /> icon.</span>
|
|
37
|
+
</c-lb.alert>
|
|
38
|
+
|
|
39
|
+
<c-lbdocs.component_example path="button/reactive-simple" style="stacked" />
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Adding your own behavior
|
|
43
|
+
|
|
44
|
+
When you need the component to do more than just swap classes (custom state, async actions, event handling), use `lb.extendComponent` to build on top of the built-in Alpine component rather than replace it. Your code gets added alongside the class management logic, so both work together.
|
|
45
|
+
|
|
46
|
+
Inside your methods, use `this.lbProps` to read or change the component's reactive props:
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
this.lbProps.variant = 'success';
|
|
50
|
+
this.lbProps.size = 'lg';
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
<c-lbdocs.component_example path="button/reactive-extend" style="stacked" />
|
|
54
|
+
|
|
55
|
+
Initial props from HTML attributes are still seeded automatically. If you need a custom `init()`, call the base to keep that:
|
|
56
|
+
|
|
57
|
+
```js
|
|
58
|
+
Alpine.data('myBtnComp', lb.extendComponent('button', {
|
|
59
|
+
init() {
|
|
60
|
+
Object.getPrototypeOf(this).init?.call(this);
|
|
61
|
+
// your custom init...
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
See the [`window.lb` reference]({% doc_url '3_references/5_window_lb.md' 'guide' %}) for full `lb.extendComponent` documentation.
|
|
67
|
+
|
|
68
|
+
### Replacing the Alpine component
|
|
69
|
+
|
|
70
|
+
You can also pass your own `x-data` entirely, which bypasses the built-in component:
|
|
71
|
+
|
|
72
|
+
```html
|
|
73
|
+
<c-lb.button.x x-data="{ myCustomSetup() { ... } }" variant="primary">
|
|
74
|
+
Custom Alpine
|
|
75
|
+
</c-lb.button.x>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
When you do this, the built-in class management no longer applies. You are responsible for handling reactive classes yourself.
|
|
79
|
+
|
|
80
|
+
## Prop format
|
|
81
|
+
|
|
82
|
+
Reactive props are plain JavaScript object keys matching the **camelCase variable names** from the API table. These are the same keys used in `lbProps` when extending:
|
|
83
|
+
|
|
84
|
+
```js
|
|
85
|
+
{
|
|
86
|
+
variant: 'primary', // btn-primary
|
|
87
|
+
size: 'lg', // btn-lg
|
|
88
|
+
btnStyle: 'outline', // btn-outline
|
|
89
|
+
behavior: '', // '' = no class applied
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
An empty string means "no value". Use it to clear a prop back to its unstyled state. You only need to include the props you want to control; the rest stay at their server-rendered defaults.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## Overriding the Alpine.js source
|
|
97
|
+
|
|
98
|
+
By default, labb serves Alpine from its own bundled static file. To use a CDN or your own build, set `ALPINE_JS_PATH` in your Django settings. See the [Django settings reference]({% doc_url '3_references/2_django_settings.md' 'guide' %}#alpine_js_path) for details.
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Theming"
|
|
3
3
|
description: "Customize themes, create custom color schemes, and integrate daisyUI theming with labb components."
|
|
4
|
+
keywords: "labb theming django, daisyui themes django, tailwind themes django, django dark mode, labb_theme tag"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
{% load docs_tags %}
|
|
7
8
|
|
|
8
9
|
labb's theming is built on <a href="https://daisyui.com/docs/themes/" target="_blank">daisyUI 5</a>. Themes are defined as CSS variables in `input.css`, applied via template tags, and optionally persisted server-side.
|
|
9
10
|
|
|
10
|
-
##
|
|
11
|
+
## Configuring labb themes in Django
|
|
11
12
|
|
|
12
13
|
Add the `{% verbatim %}{% labb_theme %}{% endverbatim %}` tag to your `<html>` element and register the theme persistence URL:
|
|
13
14
|
|
|
@@ -47,7 +48,7 @@ urlpatterns = [
|
|
|
47
48
|
|
|
48
49
|
`{% verbatim %}{% labb_theme %}{% endverbatim %}` outputs `data-theme="theme-name"` on the `<html>` element, reading from the user's session or falling back to `LABB_SETTINGS['DEFAULT_THEME']`. The `{% verbatim %}{% csrf_token %}{% endverbatim %}` is required for the theme persistence POST request.
|
|
49
50
|
|
|
50
|
-
<c-lb.alert variant="info"
|
|
51
|
+
<c-lb.alert variant="info" alertStyle="outline" class="mt-4">
|
|
51
52
|
<span>Use `{% verbatim %}{% labb_theme_val %}{% endverbatim %}` instead if you need the raw theme value for conditional logic (e.g., `{% verbatim %}{% labb_theme_val as current_theme %}{% endverbatim %}`).</span>
|
|
52
53
|
</c-lb.alert>
|
|
53
54
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Building CSS
|
|
3
|
-
description:
|
|
3
|
+
description: "Build Tailwind CSS for labb: CLI scans django-cotton templates, generates CSS, and integrates daisyUI with your Django project."
|
|
4
|
+
keywords: "labb build css, tailwind django labb, labb dev watcher, django-cotton tailwind"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
One of the main features of the labb CLI is the ability to automatically detect CSS classes based on component attributes in templates.
|
|
@@ -115,7 +116,7 @@ labb build --watch
|
|
|
115
116
|
labb dev
|
|
116
117
|
```
|
|
117
118
|
|
|
118
|
-
<c-lb.alert variant="info"
|
|
119
|
+
<c-lb.alert variant="info" alertStyle="outline">
|
|
119
120
|
<span>`labb dev` is a shortcut for `labb build -w -s` (watch + scan mode).</span>
|
|
120
121
|
</c-lb.alert>
|
|
121
122
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: labb CLI
|
|
3
|
-
description: Complete reference for the labb
|
|
3
|
+
description: "Complete reference for the labb CLI: inspect components, search icons, build CSS, and scaffold Django projects with labb and django-cotton."
|
|
4
|
+
keywords: "labb cli, labb components inspect, labb icons search, labb dev, django labb commands"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
The `labb` command-line interface provides a comprehensive set of tools for managing your Django projects using labb.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: labb.yaml
|
|
3
|
-
description:
|
|
3
|
+
description: "labb.yaml configuration for Django projects: paths, Tailwind CSS, daisyUI themes, and labb CLI defaults."
|
|
4
|
+
keywords: "labb.yaml, labb config django, labb project configuration"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
{% load docs_tags %}
|