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
Extendable, adaptable rewrite of django.contrib.admin

django-admin2 One of the most useful parts of django.contrib.admin is the ability to configure various views that touch and alter data. django-admin2

Jazzband 1.2k Dec 29, 2022
Jet Bridge (Universal) for Jet Admin – API-based Admin Panel Framework for your application

Jet Bridge for Jet Admin – Admin panel framework for your application Description About Jet Admin: https://about.jetadmin.io Live Demo: https://app.je

Jet Admin 1.3k Dec 27, 2022
Visually distinguish environments in Django Admin

django-admin-env-notice Visually distinguish environments in Django Admin. Based on great advice from post: 5 ways to make Django Admin safer by hakib

Yuri Shikanov 258 Nov 30, 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
Django app that enables staff to log in as other users using their own credentials.

Impostor Impostor is a Django application which allows staff members to login as a different user by using their own username and password. Login Logg

Andreu Vallbona Plazas 144 Dec 13, 2022
WebVirtCloud is virtualization web interface for admins and users

WebVirtCloud is a virtualization web interface for admins and users. It can delegate Virtual Machine's to users. A noVNC viewer presents a full graphical console to the guest domain. KVM is currently

Anatoliy Guskov 1.3k Dec 29, 2022
Tactical RMM is a remote monitoring & management tool for Windows computers, built with Django and Vue.

Tactical RMM is a remote monitoring & management tool for Windows computers, built with Django and Vue. It uses an agent written in golan

Dan 1.4k Dec 30, 2022
Modern theme for Django admin interface

Django Suit Modern theme for Django admin interface. Django Suit is alternative theme/skin/extension for Django administration interface. Project home

Kaspars Sprogis 2.2k Dec 29, 2022
A jazzy skin for the Django Admin-Interface (official repository).

Django Grappelli A jazzy skin for the Django admin interface. Grappelli is a grid-based alternative/extension to the Django administration interface.

Patrick Kranzlmueller 3.4k Dec 31, 2022
Django Semantic UI admin theme

Django Semantic UI admin theme A completely free (MIT) Semantic UI admin theme for Django. Actually, this is my 3rd admin theme for Django. The first

Alex 69 Dec 28, 2022
Modern theme for Django admin interface

Django Suit Modern theme for Django admin interface. Django Suit is alternative theme/skin/extension for Django administration interface. Project home

Kaspars Sprogis 2.2k Dec 29, 2022
Jinja is a fast, expressive, extensible templating engine.

Jinja is a fast, expressive, extensible templating engine. Special placeholders in the template allow writing code similar to Python syntax.

The Pallets Projects 9k Jan 04, 2023
Code to reproduce experiments in the paper "Task-Oriented Dialogue as Dataflow Synthesis" (TACL 2020).

Code to reproduce experiments in the paper "Task-Oriented Dialogue as Dataflow Synthesis" (TACL 2020).

Microsoft 274 Dec 28, 2022
spider-admin-pro

Spider Admin Pro Github: https://github.com/mouday/spider-admin-pro Gitee: https://gitee.com/mouday/spider-admin-pro Pypi: https://pypi.org/

mouday 289 Jan 06, 2023
A python application for manipulating pandas data frames from the comfort of your web browser

A python application for manipulating pandas data frames from the comfort of your web browser. Data flows are represented as a Directed Acyclic Graph, and nodes can be ran individually as the user se

Schlerp 161 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
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
Awesome Video Datasets

Awesome Video Datasets

Yunhua Zhang 462 Jan 02, 2023
Python code for "Machine learning: a probabilistic perspective" (2nd edition)

Python code for "Machine learning: a probabilistic perspective" (2nd edition)

Probabilistic machine learning 5.3k Dec 31, 2022
Python Crypto Bot

Python Crypto Bot

Michael Whittle 1.6k Jan 06, 2023