A flat theme for Django admin interface. Modern, fresh, simple.

Overview

Django Flat Theme

django-flat-theme is included as part of Django from version 1.9! 🎉

Please use this app if your project is powered by an older Django version.

Description

django-flat-theme brings fresh air to the default Django Admin interface which hasn't changed in 10 years, since the very first version of Django framework. This theme makes the UI modern and clean.

This app overrides the default admin's CSS. All the changes only involve CSS: colors, margins, sizes and icons; nothing major is changed.

Installation

Install via pip: pip install django-flat-theme

  1. Put flat app in your INSTALLED_APPS before django.contrib.admin:

    INSTALLED_APPS = (
        ...
        'flat',
        'django.contrib.admin',
        ...
    )
    
  2. Enjoy!

Compatibility

Works properly in Django 1.5+.

Font

This theme uses the Roboto font which is under Apache 2.0 licence.

Testing

Tested in:

  • Internet Explorer 7+ (IE8 and less doesn't support SVG so icons are not displayed)
  • Firefox 30+ (Windows, Ubuntu, OS X)
  • Chrome 35+ (Windows, Ubuntu, OS X)
  • Safari 8 (OS X)

Screenshot Examples

Login page

1


Dashboard

2


List of objects

3


New object

4

Comments
  • Mobile responsive?

    Mobile responsive?

    This is really awesome! The flat design made me think the CSS made everything mobile-responsive out of the box, but it turns out that's still yet to be implemented :confused: Is responsiveness on the roadmap?

    feature 
    opened by billmei 11
  • Change icons to something modern

    Change icons to something modern

    Have a desire to replace the current icons in the interface (with something like Font Awesome). But I see that there is an additional branch with the same purpose. There is a sense in completion, or the author has completed and will soon be merging?

    opened by DrJackilD 8
  • Custom colors and logo

    Custom colors and logo

    Hi, thanks for this theme, I think it is one of the best and modern Django admin themes available.

    Generally for each client I add a custom logo and I set 2 custom colors, a light and a dark one.

    It would very nice having the possibility to customize these 3 things using settings.py or by providing an small admin panel for the theme.

    What do you think about it?

    feature 
    opened by fabiocaccamo 7
  • django-admin-tools menu compatibility?

    django-admin-tools menu compatibility?

    It would be great if this theme could (eventually) be compatible with the drop-down menus provided by django-admin-tools.

    I understand you can't support compatibility with every other admin modification plugin, but my impression is that django-admin-tools in particular is mature and widely used.

    https://pypi.python.org/pypi/django-admin-tools

    Thanks for a great package.

    feature 
    opened by hughstimson 4
  • Action select box height is to small

    Action select box height is to small

    The current select box that is displayed above a list for selecting an action is to small to display the text properly.

    Screenshot with german locale: Screen

    opened by raphaelm 3
  • Not working at production stage

    Not working at production stage

    Hi, for some reason django-flat-theme it is not working at production stage, it is strange because "flat" it is setted in base.py before django.contrib.admin, and the same file it is used by production and dev. Any ideas ??? Thanks a lot !

    opened by cbanicolas 2
  • Declare that django-flat-theme supports Python 3

    Declare that django-flat-theme supports Python 3

    caniusepython3.com reports it as unsupported, while it obviously works. It would be nice to add the trove classifiers to setup.py. See https://github.com/brettcannon/caniusepython3#how-do-you-tell-if-a-project-has-been-ported-to-python-3 for details or just steal it from Django.

    opened by aaugustin 2
  • ValueError: bad marshal data (unknown type code)

    ValueError: bad marshal data (unknown type code)

    Please, do not use in the MANIFEST.in instructions that's like this:

    recursive-include flat *
    

    In this case, all files will be included into the package distribution. For example, such as the files: *.pyc, .DS_Store. Because of this, when I installed this package with the following command:

    easy_install django-flat-theme
    

    I got an error:

    Traceback (most recent call last):
    ...
      File "/home/.../setuptools-18.2-py3.4.egg/setuptools/command/bdist_egg.py", 
    line 391, in scan_module
    ValueError: bad marshal data (unknown type code)
    

    It is best to explicitly specify the file extensions to be included in the distribution. For example:

    recursive-include flat *.py *.html *.css *.js
    
    opened by Cykooz 2
  • Great job!

    Great job!

    Hey Elky,

    I'm just opening this issue to let you know that I really like your job and am thankful for what you've done! I hope it'll make into Django 1.9 and everyone will enjoy your work! Молодец, так держать!

    opened by timonweb 2
  • Layout problem on multiple element by line admin rendering

    Layout problem on multiple element by line admin rendering

    Hi,

    I'm having (with my French up to date Firefox Linux & Windows) issues on rendering.

    I may be cause of the problem as I added chosen widget…

    [edit] I am the cause of the problem, my widget need to disable overflow hidden in form row and it does it automatically… and if I use !important to overflow hidden, my widget don't work properly as it can't pop from the line…

    I agree it's not really your issue but I don't really know how to handle my MixIn which works pretty well in classic admin.

    screen_flat_bug

    Do you think of a work around for advanced admin user injecting widget relying on classic overflowing style?

    opened by Christophe31 2
  • "/static/admin/img/tooltag-arrowright.png" is a gif in <1.7

    Can't use django-flat-theme atm, since the above file doesn't exist as a .png in 1.6:

    sudo: python manage.py fasts3collectstatic --ignore *.scss --noinput
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/fonts/Roboto-Bold-webfont.woff'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/fonts/LICENSE.txt'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/fonts/Roboto-Light-webfont.woff'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/fonts/Roboto-Medium-webfont.woff'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/fonts/Roboto-Regular-webfont.woff'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/fonts/README.txt'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/css/base.css'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/css/override.css'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/css/forms.css'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/css/fonts.css'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/css/widgets.css'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/css/changelists.css'
    out: Copying '/usr/local/lib/python2.7/dist-packages/flat/static/admin/css/login.css'
    out: Post-processed 'admin/fonts/Roboto-Bold-webfont.woff' as 'admin/fonts/Roboto-Bold-webfont.2ad99072841e.woff'
    out: Post-processed 'admin/fonts/LICENSE.txt' as 'admin/fonts/LICENSE.d273d63619c9.txt'
    out: Post-processed 'admin/fonts/Roboto-Light-webfont.woff' as 'admin/fonts/Roboto-Light-webfont.b446c2399bb6.woff'
    out: Post-processed 'admin/fonts/Roboto-Medium-webfont.woff' as 'admin/fonts/Roboto-Medium-webfont.7c2fef29499b.woff'
    out: Post-processed 'admin/fonts/Roboto-Regular-webfont.woff' as 'admin/fonts/Roboto-Regular-webfont.ec39515ae8c6.woff'
    out: Post-processed 'admin/fonts/README.txt' as 'admin/fonts/README.19c10ee52bb0.txt'
    out: Post-processing 'admin/css/base.css' failed!
    out:
    out: Traceback (most recent call last):
    out:   File "manage.py", line 10, in <module>
    out:     execute_from_command_line(sys.argv)
    out:   File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
    out:     utility.execute()
    out:   File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
    out:     self.fetch_command(subcommand).run_from_argv(self.argv)
    out:   File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
    out:     self.execute(*args, **options.__dict__)
    out:   File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 285, in execute
    out:     output = self.handle(*args, **options)
    out:   File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 415, in handle
    out:     return self.handle_noargs(**options)
    out:   File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 173, in handle_noargs
    out:     collected = self.collect()
    out:   File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 125, in collect
    out:     raise processed
    out: ValueError: The file 'admin/img/tooltag-arrowright.png' could not be found with <founders_base.backends.CachedStaticS3BotoStorage object at 0x7fdd9771df90>.
    out:
    
    opened by mtschammer 2
  • Ensure INSTALLED_APPS sanity for flat app according to Django version

    Ensure INSTALLED_APPS sanity for flat app according to Django version

    Closes https://github.com/elky/django-flat-theme/issues/36

    This solution is similar to https://github.com/fabiocaccamo/django-admin-interface/blob/master/admin_interface/settings.py

    opened by filwaitman 1
  • [Suggestion]: Fail loudly when trying to install on Django>=1.9

    [Suggestion]: Fail loudly when trying to install on Django>=1.9

    Hi there!

    I was wondering if it would be nice force an installation error when Django>=1.9 is present.

    This may (or may not, IDK) be a rare scenario but take my case as an example: I just upgraded a project from Django 1.8 to Django 1.11... and my Django admin interface was... well... misbehaving. It took me a considerable amount of time to understand that that was being caused by conflicts between (in my case) this and that.

    If you guys agree this is a good idea I'll be happy to implement the changes, if needed.

    opened by filwaitman 9
  • Providing `base_site.html` breaks compatibility with end-user projects.

    Providing `base_site.html` breaks compatibility with end-user projects.

    As mentioned here: https://github.com/elky/django-flat-theme/commit/49c9b059de3398577417234399a94b5a6ece4c30

    This change probably breaks compatibility with any existing project that defines their own admin/base_site.html template, which I believe is the recommended way for people to extend the Django admin template without duplicating base.html.

    Changing the order of INSTALLED_APPS won't help. It's either our base_site.html or yours.

    Is there another way you can implement django-flat-theme without adding the flat-theme class directly to the body tag in this template? Maybe django-flat-theme can just live without it? Or you could duplicate the base.html template. That would be ideal for people wanting to use django-flat-theme with their own projects, as it would remain more of a drop in replacement.

    opened by mrmachine 6
  • Display of fields on the same line

    Display of fields on the same line

    From: https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.fieldsets

    As with the fields option, to display multiple fields on the same line, wrap those fields in their own tuple.
    

    As you can see the labels are closer to the preceeding input than they are to their own: https://drive.google.com/file/d/0B_afp8i9IOxeNDZlcWZ5ZDdvTTg/view?usp=drivesdk

    I think this was also an issue with the old admin css but now might be a good time to address it.

    I'm not sure what the best fix is. However - it should be possible to target form-rows with multiple fields using a variant of this technique: http://stackoverflow.com/questions/8720931/can-css-detect-the-number-of-children-an-element-has

    I suggest either:

    1. close the gap in this case
    2. add some form of divider between fields
    enhancement 
    opened by andybak 9
  • some ideas

    some ideas

    I have spent sometime with the flat theme, great work. Here's some thoughts that might be worth a thought

    • port the css to compass
    • replace all common styles with variables defined in a _variables.scss so there's a straight forward way to compile the flat theme with your own preferences
    • replace icons with fontawesome or halflings, e.g.
    .related-lookup:before {
      font-family: "FontAwesome";
      content: "\f002";
    }
    

    schermafbeelding 2015-05-18 om 22 39 46

    • some common mixins might be nice, e.g. btn-group

    schermafbeelding 2015-05-18 om 22 39 37

    I'm not sure where django's admin style is heading, but if it is eager to include something like flat into core, it would be nice to have something more flexible than another (yet slick :+1: ) set of css files :-)

    feature 
    opened by Hedde 2
Releases(1.1.3)
Owner
elky
elky
An administration website for Django

yawd-admin, a django administration website yawd-admin now has a live demo at http://yawd-admin.yawd.eu/. Use demo / demo as username & passowrd. yawd

Pantelis Petridis 140 Oct 30, 2021
Sandwich Batch Normalization

Sandwich Batch Normalization Code for Sandwich Batch Normalization. Introduction We present Sandwich Batch Normalization (SaBN), an extremely easy imp

VITA 48 Dec 15, 2022
GFPGAN is a blind face restoration algorithm towards real-world face images.

GFPGAN is a blind face restoration algorithm towards real-world face images.

Applied Research Center (ARC), Tencent PCG 25.6k Jan 04, 2023
Material design for django administration

Django Material Administration Quick start pip install django-material-admin Add material.admin and material.admin.default to your INSTALLED_APPS sett

Anton 279 Jan 05, 2023
django's default admin interface made customizable. popup windows replaced by modals. :mage: :zap:

django-admin-interface django-admin-interface is a modern responsive flat admin interface customizable by the admin itself. Features Beautiful default

Fabio Caccamo 1.3k Dec 31, 2022
aiohttp admin is generator for admin interface based on aiohttp

aiohttp admin is generator for admin interface based on aiohttp

Mykhailo Havelia 17 Nov 16, 2022
Responsive Theme for Django Admin With Sidebar Menu

Responsive Django Admin If you're looking for a version compatible with Django 1.8 just install 0.3.7.1. Features Responsive Sidebar Menu Easy install

Douglas Miranda 852 Dec 02, 2022
EOD (Easy and Efficient Object Detection) is a general object detection model production framework.

EOD (Easy and Efficient Object Detection) is a general object detection model production framework.

383 Jan 07, 2023
Material Design for Django

Django Material Material design for Django. Django-Material 1.7.x compatible with Django 1.11/2.0/2.1/2.2/3.0/3.1 Django-Material 1.6.x compatible wit

Viewflow 2.5k Jan 01, 2023
A modern Python package manager with PEP 582 support.

A modern Python package manager with PEP 582 support.

Python Development Master(PDM) 3.6k Jan 05, 2023
fastapi-admin is a fast admin dashboard based on FastAPI and TortoiseORM with tabler ui, inspired by Django admin.

fastapi-admin is a fast admin dashboard based on FastAPI and TortoiseORM with tabler ui, inspired by Django admin.

fastapi-admin 1.6k Dec 30, 2022
An improved django-admin-tools dashboard for Django projects

django-fluent-dashboard The fluent_dashboard module offers a custom admin dashboard, built on top of django-admin-tools (docs). The django-admin-tools

django-fluent 326 Nov 09, 2022
A cool, modern and responsive django admin application based on bootstrap 5

django-baton A cool, modern and responsive django admin application based on bootstrap 5 Documentation: readthedocs Live Demo Now you can try django-b

Otto srl 678 Jan 01, 2023
Disable dark mode in Django admin user interface in Django 3.2.x.

Django Non Dark Admin Disable or enable dark mode user interface in Django admin panel (Django==3.2). Installation For install this app run in termina

Artem Galichkin 6 Nov 23, 2022
Modern responsive template for the Django admin interface with improved functionality. We are proud to announce completely new Jet. Please check out Live Demo

Django JET Modern template for Django admin interface with improved functionality Attention! NEW JET We are proud to announce completely new Jet. Plea

Geex Arts 3.4k Dec 29, 2022
Simple and extensible administrative interface framework for Flask

Flask-Admin The project was recently moved into its own organization. Please update your references to Flask-Admin 5.2k Dec 29, 2022

Awesome Video Datasets

Awesome Video Datasets

Yunhua Zhang 462 Jan 02, 2023
DyStyle: Dynamic Neural Network for Multi-Attribute-Conditioned Style Editing

DyStyle: Dynamic Neural Network for Multi-Attribute-Conditioned Style Editing

74 Dec 03, 2022
Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.

Xadmin Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap. Liv

差沙 4.7k Dec 31, 2022
Allow foreign key attributes in list_display with '__'

django-related-admin Allow foreign key attributes in Django admin change list list_display with '__' This is based on DjangoSnippet 2996 which was mad

Petr Dlouhý 62 Nov 18, 2022