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
xarray: N-D labeled arrays and datasets

xarray is an open source project and Python package that makes working with labelled multi-dimensional arrays simple, efficient, and fun!

Python for Data 2.8k Dec 29, 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
Freqtrade is a free and open source crypto trading bot written in Python

Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram. It contains backtesting, plotting and money man

20.2k Jan 02, 2023
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
With Django Hijack, admins can log in and work on behalf of other users without having to know their credentials.

Django Hijack With Django Hijack, admins can log in and work on behalf of other users without having to know their credentials. Docs 3.x docs are avai

1.2k Jan 02, 2023
A platform used with frabit-server and frabit

A platform used with frabit-server and frabit

FrabitTech 1 Mar 03, 2022
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
Python Crypto Bot

Python Crypto Bot

Michael Whittle 1.6k Jan 06, 2023
Awesome Video Datasets

Awesome Video Datasets

Yunhua Zhang 462 Jan 02, 2023
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
Legacy django jet rebooted , supports only Django 3

Django JET Reboot Rebooting the original project : django-jet. Django Jet is modern template for Django admin interface with improved functionality. W

215 Dec 31, 2022
A user-friendly JSON editing form for Django admin

A user-friendly JSON editing form for Django admin

Bharat Chauhan 141 Dec 30, 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
PyTorch Implementation of Unsupervised Depth Completion with Calibrated Backprojection Layers (ORAL, ICCV 2021)

PyTorch Implementation of Unsupervised Depth Completion with Calibrated Backprojection Layers (ORAL, ICCV 2021)

80 Dec 13, 2022
Jazzy theme for Django

Django jazzmin (Jazzy Admin) Drop-in theme for django admin, that utilises AdminLTE 3 & Bootstrap 4 to make yo' admin look jazzy Installation pip inst

David Farrington 1.2k Jan 08, 2023
A Django app for easily adding object tools in the Django admin

Django Object Actions If you've ever tried making admin object tools you may have thought, "why can't this be as easy as making Django Admin Actions?"

Chris Chang 524 Dec 26, 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
"Log in as user" for the Django admin.

django-loginas About "Login as user" for the Django admin. loginas supports Python 3 only, as of version 0.4. If you're on 2, use 0.3.6. Installing dj

Stavros Korokithakis 326 Dec 03, 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
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