🎨

Component Kitchen Sink

Explore all djust components with live, interactive examples. All components support Bootstrap 5, Tailwind CSS, and plain HTML rendering.

UI Components

Core interactive components for building modern user interfaces

Alerts & Notifications

Alert Components

Buttons

Button Variants

Badges

Badge Styles
Primary Active 99+ Python

Dropdowns

Dropdown Menus

Cards

Card Components
Basic Card

This is a simple card component with a title and body text.

Modals

Modal Dialogs

Progress Bars

Progress Indicators
45%
65%
Processing...

Spinners

Loading Spinners
Loading...
Loading...
Loading...

Layout Components

Components for organizing and structuring your application layout

Tabs

Tab Navigation

Welcome to the Home tab!

This content is loaded immediately.

User profile information goes here.

Your messages appear here.

Configure your settings.

Data Components

Components for displaying and manipulating data tables and lists

Tables

Data Tables (Sortable, Striped, Hoverable)
IDNameEmailRoleStatus
1Alice Johnsonalice@example.comAdminactive
2Bob Smithbob@example.comUseractive
3Charlie Browncharlie@example.comUserinactive
4Diana Princediana@example.comModeratoractive
5Eve Wilsoneve@example.comUseractive

Pagination

Page Navigation
Showing 1-25 of 250 items

Usage Examples

Complete code examples showing how to use djust components

Basic Counter Example Python
from djust import LiveView

class CounterView(LiveView):
    template_name = "counter.html"

    def mount(self, request, **kwargs):
        self.count = 0

    def increment(self):
        self.count += 1

    def decrement(self):
        self.count -= 1
Template with Event Handlers HTML
<div data-liveview-root>
  <h1>Count: {{ count }}</h1>
  <button @click="increment">+</button>
  <button @click="decrement">-</button>
</div>

<script src="/static/djust/client.js"></script>
Real-time Form Validation Python
from djust import LiveView

class FormView(LiveView):
    template_name = "form.html"

    def mount(self, request, **kwargs):
        self.email = ""
        self.error = ""

    def validate_email(self, value=""):
        self.email = value
        if "@" not in value:
            self.error = "Invalid email"
        else:
            self.error = ""
URL Configuration Python
from django.urls import path
from .views import CounterView

urlpatterns = [
    path('counter/', CounterView.as_view(), name='counter'),
]

Component Features

🎨

Style-Independent

Works with Bootstrap 5, Tailwind CSS, or plain HTML/CSS

Server-Rendered

All components rendered server-side using Rust for maximum performance

🔄

Real-time Updates

Instant reactivity via WebSocket with minimal DOM updates