A modern admin interface for Django using Tailwind CSS v4
Project description
readme for Adminita
Adminita
A modern, beautiful Django admin theme built with Tailwind CSS v4. Transform your Django admin interface into a sleek, responsive dashboard with dark mode support.
โจ Features
- ๐จ Modern UI - Clean, professional interface built with Tailwind CSS v4
- ๐ Dark Mode - System preference detection with manual toggle
- ๐ฑ Responsive Design - Works seamlessly on desktop. Responsive navigation and touch-friendly controls for phones and tablets
- ๐ฏ Easy Integration - Drop-in replacement for Django's default admin
- โก Fast - Optimized CSS with no unnecessary bloat
- ๐ง Customizable - Easy to customize colors and styling
- ๐ Open Source - MIT licensed, free to use and modify
๐ธ Screenshots
Light Mode
Dark Mode
![Dark Mode Dashboard - IMAGE COMING SOON - once I fix it!]
๐ Quick Start
Installation
- Install via pip (recommended for production):
pip install adminita
- Or install from source (for development):
git clone https://github.com/djangify/adminita.git
cd adminita
pip install -e .
Configuration
- Add to INSTALLED_APPS in your Django settings (must be before
django.contrib.admin):
INSTALLED_APPS = [
"adminita", # Must be FIRST!
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
# ... your other apps
]
- Configure static files:
STATIC_URL = "/static/"
STATIC_ROOT = BASE_DIR / "staticfiles"
- Add customization to project urls.py file:
Adminita uses Django's built-in admin site customization. Add these lines to your
urls.py:
from django.contrib import admin
admin.site.site_header = "Your Site Name"
admin.site.site_title = "Your Site Title"
admin.site.index_title = "Welcome to Your Site"
- Collect static files:
python manage.py collectstatic --noinput
- Run your server:
python manage.py runserver
- Visit the admin at
http://localhost:8000/admin/
That's it! Your Django admin should now have the Adminita theme applied.
๐จ Customization
Changing Colors
Adminita uses Tailwind CSS v4's new @theme syntax. To customize colors:
- Edit the source CSS at
adminita/static/src/input.css:
@theme {
/* Change primary colors to match your brand */
--color-primary-500: #10b981; /* Your brand color */
--color-primary-600: #059669; /* Darker shade */
--color-primary-700: #047857; /* Even darker */
}
- Rebuild the CSS:
cd path/to/adminita
npm install # If you haven't already
npm run build
- Collect static files in your project:
python manage.py collectstatic --noinput
Available Color Variables
--color-primary-50 through --color-primary-950
--color-gray-50 through --color-gray-900
--color-gray-750 (custom for dark mode)
๐ง Utility Classes
Adminita provides utility classes to help with common admin patterns.
AlwaysVisibleAdmin
Ensures models always appear in the admin index, even if they have custom permissions:
from adminita.utils import AlwaysVisibleAdmin
@admin.register(MyModel)
class MyModelAdmin(AlwaysVisibleAdmin):
pass
SingletonAdmin
For models that should only have one instance (like Site Settings):
from adminita.utils import SingletonAdmin
@admin.register(SiteConfiguration)
class SiteConfigurationAdmin(SingletonAdmin):
list_display = ['site_name']
๐ ๏ธ Development
Setting Up Development Environment
- Clone the repository:
git clone https://github.com/djangify/adminita.git
cd adminita
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
npm install
- Build CSS:
npm run build # One-time build
npm run watch # Auto-rebuild on changes
- Run the demo project:
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
Project Structure
adminita/
โโโ adminita/ # The Django app package
โ โโโ static/
โ โ โโโ css/
โ โ โ โโโ adminita-tailwind.css # Generated CSS (don't edit)
โ โ โโโ js/
โ โ โ โโโ adminita-tailwind.js # JavaScript for dark mode & mobile menu
โ โ โโโ src/
โ โ โโโ input.css # Source CSS with Tailwind v4 syntax
โ โโโ templates/
โ โ โโโ admin/ # Template overrides
โ โ โโโ base.html
โ โ โโโ base_site.html
โ โ โโโ index.html
โ โ โโโ login.html
โ โ โโโ change_list.html
โ โ โโโ change_form.html
โ โโโ __init__.py
โ โโโ apps.py
โโโ config/ # Django project settings
โ โโโ settings.py
โ โโโ urls.py
โ โโโ wsgi.py
โโโ manage.py
โโโ package.json # Node.js dependencies for Tailwind
โโโ pyproject.toml # Python package configuration
โโโ README.md
๐ Known Issues
Issue: Search and filters break after zero-result state
Symptoms
- Search returns correct results
- Filters work initially
- After any action that returns zero results, filters stop working
- JavaScript error:
undefined is not iterablein actions.js
Root cause
Django's admin/js/actions.js expects specific DOM elements that may not exist when the result set is empty, causing a JavaScript crash that breaks subsequent page functionality.
Workaround
Disable admin actions or add error handling for the zero-result state.
Known Limitations
These changes make Adminita usable on mobile, not optimized for mobile:
- Complex tables - Very wide tables still require horizontal scrolling
- Inline formsets - Tabular inlines are cramped; consider using stacked inlines for mobile-heavy use cases
- Rich text editors - TinyMCE and similar may have their own mobile issues
- Date/time pickers - Django's default widgets are desktop-focused
Future Improvements (Community PRs Welcome)
- Card-based table view option for mobile (instead of horizontal scroll)
- Bottom navigation bar for common actions
- Pull-to-refresh on list pages
- Improved inline formset mobile layout
- Native date/time inputs on mobile ()
๐ Documentation
Tailwind CSS v4 Notes
Adminita uses Tailwind CSS v4, which has a different syntax than v3:
- Uses
@import "tailwindcss"instead of@tailwinddirectives - Theme customization uses
@theme {}blocks in CSS - More streamlined, CSS-first approach
Template Inheritance
When extending Adminita templates in your own project:
{% extends "admin/base.html" %}
Not adminita/admin/base.html - Django finds templates automatically because adminita is in INSTALLED_APPS.
๐ค Contributing
We welcome contributions! Adminita is an open-source project and we'd love your help making it better.
How to Contribute
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Test thoroughly
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Priority Issues
We especially need help with:
- ๐ Dark Mode Bug - The toggle isn't working (UPDATE: This now works as of December 21 2025)
- ๐ฑ Mobile Responsiveness - Testing on various devices
- โฟ Accessibility - ARIA labels, keyboard navigation, screen reader support
- ๐จ Additional Themes - Creating alternative color schemes
- ๐ Documentation - Improving guides and examples
Development Guidelines
- Follow Django's template style guidelines
- Use Tailwind CSS utility classes (avoid custom CSS when possible)
- Test on multiple browsers (Chrome, Firefox, Safari, Edge)
- Ensure dark mode compatibility for all new features
- Update documentation for any new features
๐ฆ Requirements
- Python 3.10+
- Django 4.2+
- Node.js (for building CSS during development)
- npm (for managing Tailwind CSS)
๐งช Testing
# Run Django tests
python manage.py test
# Test in multiple browsers
# Test dark mode toggle
# Test responsive design on mobile devices
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Built with Django
- Styled with Tailwind CSS v4
- Inspired by modern admin dashboards
๐ Links
-
Website - GitHub: https://github.com/djangify/adminita_demo
-
Website: https://adminita.todiane.com (demo user login available)
๐ฌ Support
Having trouble? Here are some ways to get help:
- ๐ Check the documentation
- ๐ Open an issue
- ๐ก Start a discussion
๐บ๏ธ Roadmap
- Fix dark mode toggle functionality
- Add more customization options
- Create additional color themes
- Improve accessibility (ARIA labels, keyboard navigation)
- Add comprehensive test suite
- Create video tutorials
- Publish to PyPI
- Add support for Django inline forms
- Create a documentation website
โญ Star History
If you find Adminita useful, please consider giving it a star on GitHub! It helps others discover the project.
Made with โค๏ธ by a Django enthusiast
Note: This is an open-source project. I appreciate your patience and contributions!
Developer: https://www.todiane.com
Developer LinkedIn: https://linkedin.com/in/todianedev
Coffee Always Welcome: https://ko-fi.com/todianedev โค๏ธ
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file adminita-0.1.8.tar.gz.
File metadata
- Download URL: adminita-0.1.8.tar.gz
- Upload date:
- Size: 54.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ee92300854be51b06cbde5c1872fd4661315e18418757ae3eddfae8c22db4aa
|
|
| MD5 |
4d7985970a28a18055a2cd66cfd7be77
|
|
| BLAKE2b-256 |
eb33dabb7cc81707f10304691b33b6bd41ed6a67fa30a4a9251be9c85c45ac77
|
File details
Details for the file adminita-0.1.8-py3-none-any.whl.
File metadata
- Download URL: adminita-0.1.8-py3-none-any.whl
- Upload date:
- Size: 65.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1638e583847b0b74b46aae03882c592975f35afbe3d735602dd227d67c0bc030
|
|
| MD5 |
ce3f921d70e8440e3fdf4a09296b8517
|
|
| BLAKE2b-256 |
e8cf093f3806aceaaf077bf21918b1723b812f19a8632dd47d8bc1e52e9de987
|