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
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
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
Video Visual Relation Detection (VidVRD) tracklets generation. also for ACM MM Visual Relation Understanding Grand Challenge

VidVRD-tracklets This repository contains codes for Video Visual Relation Detection (VidVRD) tracklets generation based on MEGA and deepSORT. These tr

25 Dec 21, 2022
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
A configurable set of panels that display various debug information about the current request/response.

Django Debug Toolbar The Django Debug Toolbar is a configurable set of panels that display various debug information about the current request/respons

Jazzband 7.3k Dec 31, 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
:honey_pot: A fake Django admin login screen page.

django-admin-honeypot django-admin-honeypot is a fake Django admin login screen to log and notify admins of attempted unauthorized access. This app wa

Derek Payton 907 Dec 31, 2022
A platform used with frabit-server and frabit

A platform used with frabit-server and frabit

FrabitTech 1 Mar 03, 2022
StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery

StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery

3.3k 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
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
Python Crypto Bot

Python Crypto Bot

Michael Whittle 1.6k Jan 06, 2023
A high-level app and dashboarding solution for Python

Panel provides tools for easily composing widgets, plots, tables, and other viewable objects and controls into custom analysis tools, apps, and dashboards.

HoloViz 2.5k Jan 03, 2023
Manuskript is an open-source tool for writers.

Manuskript is an open-source tool for writers. Manuskript runs on GNU/Linux, Mac OS X, and Windows.

Olivier 1.4k Jan 07, 2023
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 curated list of the latest breakthroughs in AI by release date with a clear video explanation, link to a more in-depth article, and code.

A curated list of the latest breakthroughs in AI by release date with a clear video explanation, link to a more in-depth article, and code

Louis-François Bouchard 2.9k Jan 08, 2023
WordPress look and feel for Django administration panel

Django WP Admin WordPress look and feel for Django administration panel. Features WordPress look and feel New styles for selector, calendar and timepi

Maciej Marczewski 266 Nov 21, 2022
Lazymux is a tool installer that is specially made for termux user which provides a lot of tool mainly used tools in termux and its easy to use

Lazymux is a tool installer that is specially made for termux user which provides a lot of tool mainly used tools in termux and its easy to use, Lazymux install any of the given tools provided by it

DedSecTL 1.8k Jan 09, 2023
A Django admin theme using Twitter Bootstrap. It doesn't need any kind of modification on your side, just add it to the installed apps.

django-admin-bootstrapped A Django admin theme using Bootstrap. It doesn't need any kind of modification on your side, just add it to the installed ap

1.6k Dec 28, 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