├── .env
├── .gitignore
├── CHANGELOG.md
├── Dockerfile
├── LICENSE.md
├── README.md
├── apps
├── __init__.py
├── authentication
│ ├── __init__.py
│ ├── admin.py
│ ├── config.py
│ ├── forms.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── config.py
├── context_processors.py
├── home
│ ├── __init__.py
│ ├── admin.py
│ ├── config.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── static
│ └── assets
│ │ ├── .gitkeep
│ │ ├── css
│ │ ├── dark-theme-core.css
│ │ ├── dark-theme-core.css.map
│ │ ├── nucleo-icons.css
│ │ ├── nucleo-svg.css
│ │ ├── soft-ui-dashboard.css
│ │ ├── soft-ui-dashboard.css.map
│ │ └── soft-ui-dashboard.min.css
│ │ ├── fonts
│ │ ├── nucleo-icons.eot
│ │ ├── nucleo-icons.svg
│ │ ├── nucleo-icons.ttf
│ │ ├── nucleo-icons.woff
│ │ ├── nucleo-icons.woff2
│ │ ├── nucleo.eot
│ │ ├── nucleo.ttf
│ │ ├── nucleo.woff
│ │ └── nucleo.woff2
│ │ ├── gulpfile.js
│ │ ├── img
│ │ ├── apple-icon.png
│ │ ├── bg1.jpg
│ │ ├── bruce-mars.jpg
│ │ ├── curved-images
│ │ │ ├── curved-10.jpg
│ │ │ ├── curved-11.jpg
│ │ │ ├── curved-6.jpg
│ │ │ ├── curved-8.jpg
│ │ │ ├── curved0.jpg
│ │ │ ├── curved1.jpg
│ │ │ ├── curved10.jpg
│ │ │ ├── curved11-small.jpg
│ │ │ ├── curved11.jpg
│ │ │ ├── curved12.jpg
│ │ │ ├── curved13.jpg
│ │ │ ├── curved14.jpg
│ │ │ ├── curved19.jpg
│ │ │ ├── curved2.jpg
│ │ │ ├── curved21.jpg
│ │ │ ├── curved3.jpg
│ │ │ ├── curved4.jpg
│ │ │ ├── curved5-small.jpg
│ │ │ ├── curved5.jpg
│ │ │ ├── curved6-small.jpg
│ │ │ ├── curved6.jpg
│ │ │ ├── curved7.jpg
│ │ │ ├── curved8.jpg
│ │ │ ├── curved9.jpg
│ │ │ └── white-curved.jpg
│ │ ├── down-arrow-dark.svg
│ │ ├── down-arrow-white.svg
│ │ ├── down-arrow.svg
│ │ ├── favicon.png
│ │ ├── home-decor-1.jpg
│ │ ├── home-decor-2.jpg
│ │ ├── home-decor-3.jpg
│ │ ├── illustrations
│ │ │ ├── rocket-dark.png
│ │ │ └── rocket-white.png
│ │ ├── ivana-square.jpg
│ │ ├── ivancik.jpg
│ │ ├── kal-visuals-square.jpg
│ │ ├── logo-ct-dark.png
│ │ ├── logo-ct.png
│ │ ├── logos
│ │ │ ├── mastercard.png
│ │ │ └── visa.png
│ │ ├── marie.jpg
│ │ ├── shapes
│ │ │ ├── pattern-lines.svg
│ │ │ ├── shape-1.svg
│ │ │ ├── shape-2.svg
│ │ │ ├── shape-3.svg
│ │ │ ├── wave-down.svg
│ │ │ ├── wave-up.svg
│ │ │ ├── waves-gray.svg
│ │ │ └── waves-white.svg
│ │ ├── small-logos
│ │ │ ├── icon-sun-cloud.png
│ │ │ ├── logo-atlassian.svg
│ │ │ ├── logo-invision.svg
│ │ │ ├── logo-jira.svg
│ │ │ ├── logo-slack.svg
│ │ │ ├── logo-spotify.svg
│ │ │ ├── logo-webdev.svg
│ │ │ └── logo-xd.svg
│ │ ├── team-1.jpg
│ │ ├── team-2.jpg
│ │ ├── team-3.jpg
│ │ ├── team-4.jpg
│ │ ├── theme
│ │ │ ├── angular.jpg
│ │ │ ├── bootstrap.jpg
│ │ │ ├── dribbble.png
│ │ │ ├── dropbox.png
│ │ │ ├── mastercard.png
│ │ │ ├── paypal.png
│ │ │ ├── react.jpg
│ │ │ ├── sketch.jpg
│ │ │ ├── slack.png
│ │ │ ├── spotify.jpeg
│ │ │ ├── tim.png
│ │ │ ├── unass.jpg
│ │ │ ├── visa.png
│ │ │ └── vue.jpg
│ │ └── vr-bg.jpg
│ │ ├── js
│ │ ├── core
│ │ │ ├── bootstrap.bundle.min.js
│ │ │ ├── bootstrap.min.js
│ │ │ └── popper.min.js
│ │ ├── dark-mode-handler.js
│ │ ├── plugins
│ │ │ ├── Chart.extension.js
│ │ │ ├── bootstrap-notify.js
│ │ │ ├── chartjs.min.js
│ │ │ ├── perfect-scrollbar.min.js
│ │ │ └── smooth-scrollbar.min.js
│ │ ├── soft-ui-dashboard.js
│ │ ├── soft-ui-dashboard.js.map
│ │ └── soft-ui-dashboard.min.js
│ │ ├── package.json
│ │ └── scss
│ │ ├── dark-theme-core.scss
│ │ ├── soft-ui-dashboard.scss
│ │ └── soft-ui-dashboard
│ │ ├── _alert.scss
│ │ ├── _avatars.scss
│ │ ├── _badge.scss
│ │ ├── _breadcrumbs.scss
│ │ ├── _buttons.scss
│ │ ├── _cards.scss
│ │ ├── _dark-version.scss
│ │ ├── _dropdown.scss
│ │ ├── _dropup.scss
│ │ ├── _fixed-plugin.scss
│ │ ├── _footer.scss
│ │ ├── _forms.scss
│ │ ├── _gradients.scss
│ │ ├── _header.scss
│ │ ├── _info-areas.scss
│ │ ├── _misc.scss
│ │ ├── _nav.scss
│ │ ├── _navbar-vertical.scss
│ │ ├── _navbar.scss
│ │ ├── _pagination.scss
│ │ ├── _popovers.scss
│ │ ├── _progress.scss
│ │ ├── _rtl.scss
│ │ ├── _social-buttons.scss
│ │ ├── _tables.scss
│ │ ├── _tilt.scss
│ │ ├── _timeline.scss
│ │ ├── _tooltips.scss
│ │ ├── _typography.scss
│ │ ├── _utilities-extend.scss
│ │ ├── _utilities.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap
│ │ ├── _accordion.scss
│ │ ├── _alert.scss
│ │ ├── _badge.scss
│ │ ├── _breadcrumb.scss
│ │ ├── _button-group.scss
│ │ ├── _buttons.scss
│ │ ├── _card.scss
│ │ ├── _carousel.scss
│ │ ├── _close.scss
│ │ ├── _containers.scss
│ │ ├── _dropdown.scss
│ │ ├── _forms.scss
│ │ ├── _functions.scss
│ │ ├── _grid.scss
│ │ ├── _helpers.scss
│ │ ├── _images.scss
│ │ ├── _list-group.scss
│ │ ├── _maps.scss
│ │ ├── _mixins.scss
│ │ ├── _modal.scss
│ │ ├── _nav.scss
│ │ ├── _navbar.scss
│ │ ├── _offcanvas.scss
│ │ ├── _pagination.scss
│ │ ├── _placeholders.scss
│ │ ├── _popover.scss
│ │ ├── _progress.scss
│ │ ├── _reboot.scss
│ │ ├── _root.scss
│ │ ├── _spinners.scss
│ │ ├── _tables.scss
│ │ ├── _toasts.scss
│ │ ├── _tooltip.scss
│ │ ├── _transitions.scss
│ │ ├── _type.scss
│ │ ├── _utilities.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap-grid.scss
│ │ ├── bootstrap-reboot.scss
│ │ ├── bootstrap-utilities.scss
│ │ ├── bootstrap.scss
│ │ ├── forms
│ │ │ ├── _floating-labels.scss
│ │ │ ├── _form-check.scss
│ │ │ ├── _form-control.scss
│ │ │ ├── _form-range.scss
│ │ │ ├── _form-select.scss
│ │ │ ├── _form-text.scss
│ │ │ ├── _input-group.scss
│ │ │ ├── _labels.scss
│ │ │ └── _validation.scss
│ │ ├── helpers
│ │ │ ├── _clearfix.scss
│ │ │ ├── _color-bg.scss
│ │ │ ├── _colored-links.scss
│ │ │ ├── _position.scss
│ │ │ ├── _ratio.scss
│ │ │ ├── _stacks.scss
│ │ │ ├── _stretched-link.scss
│ │ │ ├── _text-truncation.scss
│ │ │ ├── _visually-hidden.scss
│ │ │ └── _vr.scss
│ │ ├── mixins
│ │ │ ├── _alert.scss
│ │ │ ├── _backdrop.scss
│ │ │ ├── _border-radius.scss
│ │ │ ├── _box-shadow.scss
│ │ │ ├── _breakpoints.scss
│ │ │ ├── _buttons.scss
│ │ │ ├── _caret.scss
│ │ │ ├── _clearfix.scss
│ │ │ ├── _color-scheme.scss
│ │ │ ├── _container.scss
│ │ │ ├── _deprecate.scss
│ │ │ ├── _forms.scss
│ │ │ ├── _gradients.scss
│ │ │ ├── _grid.scss
│ │ │ ├── _image.scss
│ │ │ ├── _list-group.scss
│ │ │ ├── _lists.scss
│ │ │ ├── _pagination.scss
│ │ │ ├── _reset-text.scss
│ │ │ ├── _resize.scss
│ │ │ ├── _table-variants.scss
│ │ │ ├── _text-truncate.scss
│ │ │ ├── _transition.scss
│ │ │ ├── _utilities.scss
│ │ │ └── _visually-hidden.scss
│ │ ├── utilities
│ │ │ └── _api.scss
│ │ └── vendor
│ │ │ └── _rfs.scss
│ │ ├── cards
│ │ └── card-background.scss
│ │ ├── custom
│ │ ├── _styles.scss
│ │ └── _variables.scss
│ │ ├── forms
│ │ ├── _form-check.scss
│ │ ├── _form-select.scss
│ │ ├── _form-switch.scss
│ │ ├── _forms.scss
│ │ ├── _input-group.scss
│ │ ├── _inputs.scss
│ │ └── _labels.scss
│ │ ├── mixins
│ │ ├── _badge.scss
│ │ ├── _colored-shadows.scss
│ │ ├── _hover.scss
│ │ ├── _social-buttons.scss
│ │ └── mixins.scss
│ │ ├── plugins
│ │ └── free
│ │ │ ├── _flatpickr.scss
│ │ │ ├── _nouislider.scss
│ │ │ ├── _perfect-scrollbar.scss
│ │ │ ├── _prism.scss
│ │ │ └── plugins.scss
│ │ ├── theme.scss
│ │ └── variables
│ │ ├── _animations.scss
│ │ ├── _avatars.scss
│ │ ├── _badge.scss
│ │ ├── _breadcrumb.scss
│ │ ├── _cards-extend.scss
│ │ ├── _cards.scss
│ │ ├── _choices.scss
│ │ ├── _dark-version.scss
│ │ ├── _dropdowns.scss
│ │ ├── _fixed-plugin.scss
│ │ ├── _form-switch.scss
│ │ ├── _full-calendar.scss
│ │ ├── _header.scss
│ │ ├── _info-areas.scss
│ │ ├── _misc-extend.scss
│ │ ├── _misc.scss
│ │ ├── _navbar-vertical.scss
│ │ ├── _navbar.scss
│ │ ├── _pagination.scss
│ │ ├── _rtl.scss
│ │ ├── _social-buttons.scss
│ │ ├── _table.scss
│ │ ├── _timeline.scss
│ │ ├── _utilities-extend.scss
│ │ ├── _utilities.scss
│ │ └── _virtual-reality.scss
├── tasks
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── config.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── signals.py
│ ├── tasks.py
│ ├── templatetags
│ │ ├── __init__.py
│ │ └── formats.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
└── templates
│ ├── .gitkeep
│ ├── accounts
│ ├── login.html
│ └── register.html
│ ├── home
│ ├── .gitkeep
│ ├── billing.html
│ ├── index.html
│ ├── page-403.html
│ ├── page-404.html
│ ├── page-500.html
│ ├── profile.html
│ ├── rtl.html
│ ├── sign-in.html
│ ├── sign-up.html
│ ├── tables.html
│ └── virtual-reality.html
│ ├── includes
│ ├── .gitkeep
│ ├── fixed-plugin.html
│ ├── footer-fullscreen.html
│ ├── footer-rtl.html
│ ├── footer.html
│ ├── navigation-fullscreen.html
│ ├── navigation-rtl.html
│ ├── navigation.html
│ ├── scripts.html
│ ├── sidebar-rtl.html
│ └── sidebar.html
│ ├── layouts
│ ├── .gitkeep
│ ├── base-fullscreen.html
│ ├── base-rtl.html
│ └── base.html
│ └── tasks
│ └── index.html
├── celery_logs
└── .gitkeep
├── celery_scripts
├── check-db-health.py
├── check-disk-free.py
└── clean-database.py
├── core
├── __init__.py
├── asgi.py
├── celery.py
├── settings.py
├── staticfiles
│ └── .gitkeep
├── urls.py
└── wsgi.py
├── docker-compose.yml
├── env.sample
├── gunicorn-cfg.py
├── log.json
├── manage.py
├── nginx
└── appseed-app.conf
├── package.json
├── requirements.txt
└── staticfiles
└── .gitkeep
/.env:
--------------------------------------------------------------------------------
1 | # True for development, False for production
2 | DEBUG=True
3 |
4 | # Deployment SERVER address
5 | SERVER=.appseed.us
6 |
7 | # Used for CDN (in production)
8 | # No Slash at the end
9 | ASSETS_ROOT=/static/assets
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 |
5 | # tests and coverage
6 | *.pytest_cache
7 | .coverage
8 |
9 | # database & logs
10 | *.db
11 | *.sqlite3
12 |
13 | #*.log
14 |
15 | # venv
16 | env
17 | venv
18 |
19 | # other
20 | .DS_Store
21 |
22 | # javascript
23 | package-lock.json
24 |
25 | staticfiles/*
26 | !staticfiles/.gitkeep
27 | .vscode/symbols.json
28 |
29 | apps/static/assets/node_modules
30 | apps/static/assets/yarn.lock
31 | apps/static/assets/.temp
32 | celery_logs/*
33 |
34 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | ## [1.0.0] 2020-10-11
4 | ### Improvements
5 |
6 | - Stable release
7 | - Dedicated TASKS Page
8 | - Supported Tasks:
9 | - Registered in APPS
10 | - EXEC external scripts (`celery_scripts` folder)
11 |
12 | ## [0.0.1] 2020-10-02
13 | ### Improvements
14 |
15 | - Prepare the UI for Celery
16 |
17 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM python:3.9
2 |
3 | # set environment variables
4 | ENV PYTHONDONTWRITEBYTECODE 1
5 | ENV PYTHONUNBUFFERED 1
6 |
7 | COPY requirements.txt .
8 | # install python dependencies
9 | RUN pip install --upgrade pip
10 | RUN pip install --no-cache-dir -r requirements.txt
11 |
12 | COPY . /app
13 |
14 | WORKDIR /app
15 |
16 | # running migrations
17 | RUN python manage.py migrate
18 |
19 | # gunicorn
20 | CMD ["gunicorn", "--config", "gunicorn-cfg.py", "core.wsgi"]
21 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # MIT License
2 |
3 | Copyright (c) 2019 - present [AppSeed](http://appseed.us/)
4 |
5 |
6 |
7 | ## Licensing Information
8 |
9 |
10 |
11 | | Item | - |
12 | | ---------------------------------- | --- |
13 | | License Type | MIT |
14 | | Use for print | **YES** |
15 | | Create single personal website/app | **YES** |
16 | | Create single website/app for client | **YES** |
17 | | Create multiple website/apps for clients | **YES** |
18 | | Create multiple SaaS applications | **YES** |
19 | | End-product paying users | **YES** |
20 | | Product sale | **YES** |
21 | | Remove footer credits | **YES** |
22 | | --- | --- |
23 | | Remove copyright mentions from source code | NO |
24 | | Production deployment assistance | NO |
25 | | Create HTML/CSS template for sale | NO |
26 | | Create Theme/Template for CMS for sale | NO |
27 | | Separate sale of our UI Elements | NO |
28 |
29 |
30 |
31 | ---
32 | For more information regarding licensing, please contact the AppSeed Service < *support@appseed.us* >
33 |
--------------------------------------------------------------------------------
/apps/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/__init__.py
--------------------------------------------------------------------------------
/apps/authentication/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
--------------------------------------------------------------------------------
/apps/authentication/admin.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.contrib import admin
7 |
8 | # Register your models here.
9 |
--------------------------------------------------------------------------------
/apps/authentication/config.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.apps import AppConfig
7 |
8 |
9 | class AuthConfig(AppConfig):
10 | name = 'apps.auth'
11 | label = 'apps_auth'
12 |
--------------------------------------------------------------------------------
/apps/authentication/forms.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django import forms
7 | from django.contrib.auth.forms import UserCreationForm
8 | from django.contrib.auth.models import User
9 |
10 |
11 | class LoginForm(forms.Form):
12 | username = forms.CharField(
13 | widget=forms.TextInput(
14 | attrs={
15 | "placeholder": "Username",
16 | "class": "form-control"
17 | }
18 | ))
19 | password = forms.CharField(
20 | widget=forms.PasswordInput(
21 | attrs={
22 | "placeholder": "Password",
23 | "class": "form-control"
24 | }
25 | ))
26 |
27 |
28 | class SignUpForm(UserCreationForm):
29 | username = forms.CharField(
30 | widget=forms.TextInput(
31 | attrs={
32 | "placeholder": "Username",
33 | "class": "form-control"
34 | }
35 | ))
36 | email = forms.EmailField(
37 | widget=forms.EmailInput(
38 | attrs={
39 | "placeholder": "Email",
40 | "class": "form-control"
41 | }
42 | ))
43 | password1 = forms.CharField(
44 | widget=forms.PasswordInput(
45 | attrs={
46 | "placeholder": "Password",
47 | "class": "form-control"
48 | }
49 | ))
50 | password2 = forms.CharField(
51 | widget=forms.PasswordInput(
52 | attrs={
53 | "placeholder": "Password check",
54 | "class": "form-control"
55 | }
56 | ))
57 |
58 | class Meta:
59 | model = User
60 | fields = ('username', 'email', 'password1', 'password2')
61 |
--------------------------------------------------------------------------------
/apps/authentication/migrations/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
--------------------------------------------------------------------------------
/apps/authentication/models.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.db import models
7 |
8 | # Create your models here.
9 |
--------------------------------------------------------------------------------
/apps/authentication/tests.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.test import TestCase
7 |
8 | # Create your tests here.
9 |
--------------------------------------------------------------------------------
/apps/authentication/urls.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.urls import path
7 | from .views import login_view, register_user
8 | from django.contrib.auth.views import LogoutView
9 |
10 | urlpatterns = [
11 | path('login/', login_view, name="login"),
12 | path('register/', register_user, name="register"),
13 | path("logout/", LogoutView.as_view(), name="logout")
14 | ]
15 |
--------------------------------------------------------------------------------
/apps/authentication/views.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | # Create your views here.
7 | from django.shortcuts import render, redirect
8 | from django.contrib.auth import authenticate, login
9 | from .forms import LoginForm, SignUpForm
10 |
11 |
12 | def login_view(request):
13 | form = LoginForm(request.POST or None)
14 |
15 | msg = None
16 |
17 | if request.method == "POST":
18 |
19 | if form.is_valid():
20 | username = form.cleaned_data.get("username")
21 | password = form.cleaned_data.get("password")
22 | user = authenticate(username=username, password=password)
23 | if user is not None:
24 | login(request, user)
25 | return redirect("/")
26 | else:
27 | msg = 'Invalid credentials'
28 | else:
29 | msg = 'Error validating the form'
30 |
31 | return render(request, "accounts/login.html", {"form": form, "msg": msg})
32 |
33 |
34 | def register_user(request):
35 | msg = None
36 | success = False
37 |
38 | if request.method == "POST":
39 | form = SignUpForm(request.POST)
40 | if form.is_valid():
41 | form.save()
42 | username = form.cleaned_data.get("username")
43 | raw_password = form.cleaned_data.get("password1")
44 | user = authenticate(username=username, password=raw_password)
45 |
46 | msg = 'User created successfully.'
47 | success = True
48 |
49 | # return redirect("/login/")
50 |
51 | else:
52 | msg = 'Form is not valid'
53 | else:
54 | form = SignUpForm()
55 |
56 | return render(request, "accounts/register.html", {"form": form, "msg": msg, "success": success})
57 |
--------------------------------------------------------------------------------
/apps/config.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class AppsConfig(AppConfig):
5 | default_auto_field = 'django.db.models.BigAutoField'
6 | name = 'apps'
7 | label = 'apps'
8 |
--------------------------------------------------------------------------------
/apps/context_processors.py:
--------------------------------------------------------------------------------
1 | from django.conf import settings
2 |
3 | def cfg_assets_root(request):
4 |
5 | return { 'ASSETS_ROOT' : settings.ASSETS_ROOT }
6 |
7 |
--------------------------------------------------------------------------------
/apps/home/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
--------------------------------------------------------------------------------
/apps/home/admin.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.contrib import admin
7 |
8 | # Register your models here.
9 |
--------------------------------------------------------------------------------
/apps/home/config.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.apps import AppConfig
7 |
8 |
9 | class MyConfig(AppConfig):
10 | name = 'apps.home'
11 | label = 'apps_home'
12 |
--------------------------------------------------------------------------------
/apps/home/migrations/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
--------------------------------------------------------------------------------
/apps/home/models.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.db import models
7 | from django.contrib.auth.models import User
8 |
9 | # Create your models here.
10 |
11 |
--------------------------------------------------------------------------------
/apps/home/tests.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.test import TestCase
7 |
8 | # Create your tests here.
9 |
--------------------------------------------------------------------------------
/apps/home/urls.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django.urls import path, re_path
7 | from apps.home import views
8 |
9 | urlpatterns = [
10 |
11 | # The home page
12 | path('', views.index, name='home'),
13 |
14 | # Matches any html file
15 | re_path(r'^.*\.*', views.pages, name='pages'),
16 |
17 | ]
18 |
--------------------------------------------------------------------------------
/apps/home/views.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | from django import template
7 | from django.contrib.auth.decorators import login_required
8 | from django.http import HttpResponse, HttpResponseRedirect
9 | from django.template import loader
10 | from django.urls import reverse
11 |
12 |
13 | @login_required(login_url="/login/")
14 | def index(request):
15 | context = {'segment': 'index'}
16 |
17 | html_template = loader.get_template('home/index.html')
18 | return HttpResponse(html_template.render(context, request))
19 |
20 |
21 | @login_required(login_url="/login/")
22 | def pages(request):
23 | context = {}
24 | # All resource paths end in .html.
25 | # Pick out the html file name from the url. And load that template.
26 | try:
27 |
28 | load_template = request.path.split('/')[-1]
29 |
30 | if load_template == 'admin':
31 | return HttpResponseRedirect(reverse('admin:index'))
32 | context['segment'] = load_template
33 |
34 | html_template = loader.get_template('home/' + load_template)
35 | return HttpResponse(html_template.render(context, request))
36 |
37 | except Exception as e:
38 |
39 | print(' > ERR: ' + str(e))
40 | html_template = loader.get_template('home/page-404.html')
41 | return HttpResponse(html_template.render(context, request))
42 |
--------------------------------------------------------------------------------
/apps/static/assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/.gitkeep
--------------------------------------------------------------------------------
/apps/static/assets/fonts/nucleo-icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/fonts/nucleo-icons.eot
--------------------------------------------------------------------------------
/apps/static/assets/fonts/nucleo-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/fonts/nucleo-icons.ttf
--------------------------------------------------------------------------------
/apps/static/assets/fonts/nucleo-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/fonts/nucleo-icons.woff
--------------------------------------------------------------------------------
/apps/static/assets/fonts/nucleo-icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/fonts/nucleo-icons.woff2
--------------------------------------------------------------------------------
/apps/static/assets/fonts/nucleo.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/fonts/nucleo.eot
--------------------------------------------------------------------------------
/apps/static/assets/fonts/nucleo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/fonts/nucleo.ttf
--------------------------------------------------------------------------------
/apps/static/assets/fonts/nucleo.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/fonts/nucleo.woff
--------------------------------------------------------------------------------
/apps/static/assets/fonts/nucleo.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/fonts/nucleo.woff2
--------------------------------------------------------------------------------
/apps/static/assets/gulpfile.js:
--------------------------------------------------------------------------------
1 | var gulp = require('gulp');
2 | var path = require('path');
3 | var sass = require('gulp-sass')(require('sass'));
4 | var autoprefixer = require('gulp-autoprefixer');
5 | var sourcemaps = require('gulp-sourcemaps');
6 | var open = require('gulp-open');
7 |
8 | var Paths = {
9 | HERE: './',
10 | DIST: 'dist/',
11 | CSS: './assets/css/',
12 | SCSS_TOOLKIT_SOURCES: './assets/scss/soft-ui-dashboard.scss',
13 | DARK_MODE_SOURCE: './assets/scss/dark-theme-core.scss',
14 | SCSS: './assets/scss/**/**'
15 | };
16 |
17 | gulp.task('compile-scss', function() {
18 | return gulp.src([Paths.SCSS_TOOLKIT_SOURCES, Paths.DARK_MODE_SOURCE])
19 | .pipe(sourcemaps.init())
20 | .pipe(sass().on('error', sass.logError))
21 | .pipe(autoprefixer())
22 | .pipe(sourcemaps.write(Paths.HERE))
23 | .pipe(gulp.dest(Paths.CSS));
24 | });
25 |
26 | gulp.task('watch', function() {
27 | gulp.watch(Paths.SCSS, gulp.series('compile-scss'));
28 | });
29 |
30 | gulp.task('open', function() {
31 | gulp.src('pages/dashboard.html')
32 | .pipe(open());
33 | });
34 |
35 | gulp.task('open-app', gulp.parallel('open', 'watch'));
--------------------------------------------------------------------------------
/apps/static/assets/img/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/apple-icon.png
--------------------------------------------------------------------------------
/apps/static/assets/img/bg1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/bg1.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/bruce-mars.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/bruce-mars.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved-10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved-10.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved-11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved-11.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved-6.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved-8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved-8.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved0.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved1.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved10.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved11-small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved11-small.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved11.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved12.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved13.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved14.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved19.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved19.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved2.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved21.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved21.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved3.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved4.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved5-small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved5-small.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved5.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved6-small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved6-small.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved6.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved7.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved8.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/curved9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/curved9.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/curved-images/white-curved.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/curved-images/white-curved.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/down-arrow-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/apps/static/assets/img/down-arrow-white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/static/assets/img/down-arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apps/static/assets/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/favicon.png
--------------------------------------------------------------------------------
/apps/static/assets/img/home-decor-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/home-decor-1.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/home-decor-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/home-decor-2.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/home-decor-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/home-decor-3.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/illustrations/rocket-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/illustrations/rocket-dark.png
--------------------------------------------------------------------------------
/apps/static/assets/img/illustrations/rocket-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/illustrations/rocket-white.png
--------------------------------------------------------------------------------
/apps/static/assets/img/ivana-square.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/ivana-square.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/ivancik.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/ivancik.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/kal-visuals-square.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/kal-visuals-square.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/logo-ct-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/logo-ct-dark.png
--------------------------------------------------------------------------------
/apps/static/assets/img/logo-ct.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/logo-ct.png
--------------------------------------------------------------------------------
/apps/static/assets/img/logos/mastercard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/logos/mastercard.png
--------------------------------------------------------------------------------
/apps/static/assets/img/logos/visa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/logos/visa.png
--------------------------------------------------------------------------------
/apps/static/assets/img/marie.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/marie.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/shapes/shape-1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/static/assets/img/shapes/shape-2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/static/assets/img/shapes/shape-3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/static/assets/img/shapes/wave-down.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apps/static/assets/img/shapes/wave-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apps/static/assets/img/small-logos/icon-sun-cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/small-logos/icon-sun-cloud.png
--------------------------------------------------------------------------------
/apps/static/assets/img/small-logos/logo-atlassian.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apps/static/assets/img/small-logos/logo-invision.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apps/static/assets/img/small-logos/logo-jira.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apps/static/assets/img/small-logos/logo-spotify.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apps/static/assets/img/small-logos/logo-webdev.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/apps/static/assets/img/team-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/team-1.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/team-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/team-2.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/team-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/team-3.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/team-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/team-4.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/angular.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/angular.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/bootstrap.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/bootstrap.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/dribbble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/dribbble.png
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/dropbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/dropbox.png
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/mastercard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/mastercard.png
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/paypal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/paypal.png
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/react.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/react.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/sketch.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/sketch.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/slack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/slack.png
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/spotify.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/spotify.jpeg
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/tim.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/tim.png
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/unass.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/unass.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/visa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/visa.png
--------------------------------------------------------------------------------
/apps/static/assets/img/theme/vue.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/theme/vue.jpg
--------------------------------------------------------------------------------
/apps/static/assets/img/vr-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/sample-django-celery/4aff170261ef93de951d44a8d5e61ec7e95c5ad7/apps/static/assets/img/vr-bg.jpg
--------------------------------------------------------------------------------
/apps/static/assets/js/dark-mode-handler.js:
--------------------------------------------------------------------------------
1 | const themeSwitch = document.getElementById("theme-switch");
2 | const themeIndicator = document.getElementById("theme-indicator");
3 | const page = document.body;
4 |
5 | const themeStates = ["light", "dark"]
6 | const indicators = ["fa-moon", "fa-sun"]
7 | const pageClass = ["bg-gray-100", "dark-page"]
8 |
9 | let currentTheme = localStorage.getItem("theme");
10 |
11 | function setTheme(theme) {
12 | localStorage.setItem("theme", themeStates[theme])
13 | }
14 |
15 | function setIndicator(theme) {
16 | themeIndicator.classList.remove(indicators[0])
17 | themeIndicator.classList.remove(indicators[1])
18 | themeIndicator.classList.add(indicators[theme])
19 | }
20 |
21 | function setPage(theme) {
22 | page.classList.remove(pageClass[0])
23 | page.classList.remove(pageClass[1])
24 | page.classList.add(pageClass[theme])
25 | }
26 |
27 |
28 | if (currentTheme === null) {
29 | localStorage.setItem("theme", themeStates[0])
30 | setIndicator(0)
31 | setPage(0)
32 | themeSwitch.checked = true;
33 | }
34 | if (currentTheme === themeStates[0]) {
35 | setIndicator(0)
36 | setPage(0)
37 | themeSwitch.checked = true;
38 |
39 | }
40 | if (currentTheme === themeStates[1]) {
41 | setIndicator(1)
42 | setPage(1)
43 | themeSwitch.checked = false;
44 | }
45 |
46 |
47 | themeSwitch.addEventListener('change', function () {
48 | if (this.checked) {
49 | setTheme(0)
50 | setIndicator(0)
51 | setPage(0)
52 | } else {
53 | setTheme(1)
54 | setIndicator(1)
55 | setPage(1)
56 | }
57 | });
--------------------------------------------------------------------------------
/apps/static/assets/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "soft-ui-dashboard",
3 | "version": "1.0.6",
4 | "description": "Freebie Dashboard for Bootstrap 5",
5 | "main": "pages/dashboard.html",
6 | "directories": {
7 | "example": "root"
8 | },
9 | "scripts": {
10 | "open-app": "gulp open-app",
11 | "start": "npm run open-app",
12 | "test": "echo \"Error: no test specified\" && exit 1",
13 | "watch": "gulp-watch"
14 | },
15 | "repository": {
16 | "type": "git",
17 | "url": "git+https://github.com/creativetimofficial/soft-ui-dashboard.git"
18 | },
19 | "keywords": [
20 | "soft ui dashboard",
21 | "bootstrap 5",
22 | "dashboard",
23 | "creative tim",
24 | "html dashboard",
25 | "html css dashboard",
26 | "web dashboard",
27 | "freebie",
28 | "free bootstrap dashboard",
29 | "css3 dashboard",
30 | "bootstrap dashboard",
31 | "frontend",
32 | "responsive bootstrap dashboard"
33 | ],
34 | "author": "Creative Tim (https://www.creative-tim.com/)",
35 | "license": "MIT",
36 | "bugs": {
37 | "url": "https://github.com/creativetimofficial/soft-ui-dashboard/issues"
38 | },
39 | "devDependencies": {
40 | "gulp": "^4.0.2",
41 | "gulp-autoprefixer": "^7.0.1",
42 | "gulp-clean": "^0.4.0",
43 | "gulp-install": "^1.1.0",
44 | "gulp-open": "^3.0.1",
45 | "gulp-sass": "^5.1.0",
46 | "gulp-sourcemaps": "^2.6.5",
47 | "sass": "^1.49.9"
48 | },
49 | "homepage": "http://creative-tim.com/product/soft-ui-dashboard"
50 | }
51 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard.scss:
--------------------------------------------------------------------------------
1 | // =========================================================
2 | // * Soft UI Dashboard - v1.0.5
3 | // =========================================================
4 | //
5 | // * Product Page: https://www.creative-tim.com/product/soft-ui-dashboard
6 | // * Copyright 2022 Creative Tim (https://www.creative-tim.com)
7 | //
8 | // Coded by www.creative-tim.com
9 | //
10 | // =========================================================
11 | //
12 | // * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
13 |
14 | // Bootstrap Functions
15 | @import "soft-ui-dashboard/bootstrap/functions";
16 |
17 | // Custom Variables
18 | @import "soft-ui-dashboard/custom/variables";
19 |
20 | // Theme Variables
21 | @import "soft-ui-dashboard/variables";
22 |
23 | // Bootstrap Core
24 | @import "soft-ui-dashboard/bootstrap/bootstrap";
25 |
26 | // Theme Core
27 | @import "soft-ui-dashboard/theme";
28 |
29 | // Custom Variables
30 | @import "soft-ui-dashboard/custom/styles";
31 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_alert.scss:
--------------------------------------------------------------------------------
1 | @each $state, $value in $theme-gradient-colors {
2 | .alert-#{$state} {
3 | @include gradient-directional(nth($value, 1) 0%, darken(nth($value, -1), 8%) 100%, $deg: 310deg);
4 | }
5 | }
6 |
7 | .btn-close{
8 | &:focus{
9 | box-shadow: none;
10 | }
11 | }
12 |
13 | .alert-dismissible{
14 | .btn-close{
15 | background-image: none;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_avatars.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Avatar
3 | //
4 |
5 | // General styles
6 |
7 | .avatar {
8 | color: $white;
9 | display: inline-flex;
10 | align-items: center;
11 | justify-content: center;
12 | font-size: $avatar-font-size;
13 | border-radius: $border-radius-lg;
14 | height: $avatar-height;
15 | width: $avatar-width;
16 | transition: all .2s ease-in-out;
17 |
18 | img {
19 | width: 100%;
20 | }
21 |
22 | &.rounded-circle {
23 | img {
24 | @extend .rounded-circle;
25 | }
26 | }
27 |
28 | + .avatar-content {
29 | display: inline-block;
30 | margin-left: $avatar-content-margin;
31 | }
32 |
33 |
34 | &.avatar-raised {
35 | margin-top: -($avatar-height * 0.5);
36 | }
37 |
38 | &.avatar-scale-up:hover {
39 | transform: scale(1.2);
40 |
41 | }
42 | }
43 |
44 | // Style for the Testimonials Carousel
45 | .active {
46 | .avatar.avatar-scale-up {
47 | transform: scale(1.2);
48 | }
49 | }
50 |
51 |
52 | // Avatar size variations
53 |
54 | .avatar-xxl {
55 | width: $avatar-xxl-width !important;
56 | height: $avatar-xxl-height !important;
57 |
58 | &.avatar-raised {
59 | margin-top: -($avatar-xxl-height * 0.5);
60 | }
61 | }
62 |
63 | .avatar-xl {
64 | width: $avatar-xl-width !important;
65 | height: $avatar-xl-height !important;
66 |
67 | &.avatar-raised {
68 | margin-top: -($avatar-xl-height * 0.5);
69 | }
70 | }
71 |
72 | .avatar-lg {
73 | width: $avatar-lg-width !important;
74 | height: $avatar-lg-height !important;
75 | font-size: $font-size-sm;
76 |
77 | &.avatar-raised {
78 | margin-top: -($avatar-lg-height * 0.5);
79 | }
80 | }
81 |
82 | .avatar-sm {
83 | width: $avatar-sm-width !important;
84 | height: $avatar-sm-height !important;
85 | font-size: $font-size-sm;
86 |
87 | &.avatar-raised {
88 | margin-top: -($avatar-sm-height * 0.5);
89 | }
90 | }
91 |
92 | .avatar-xs {
93 | width: $avatar-xs-width !important;
94 | height: $avatar-xs-height !important;
95 | font-size: $font-size-xs;
96 |
97 | &.avatar-raised {
98 | margin-top: -($avatar-xs-height * 0.5);
99 | }
100 | }
101 |
102 | //
103 | // Avatar group
104 | //
105 |
106 | // General styles
107 |
108 | .avatar-group {
109 | .avatar {
110 | position: relative;
111 | z-index: $avatar-group-zindex;
112 | border: $avatar-group-border solid $card-bg;
113 |
114 | &:hover {
115 | z-index: $avatar-group-zindex-hover;
116 | }
117 | }
118 |
119 | .avatar + .avatar {
120 | margin-left: $avatar-group-double;
121 |
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_badge.scss:
--------------------------------------------------------------------------------
1 | @each $prop, $value in $theme-colors {
2 | .badge.bg-#{$prop} {
3 | background: $value;
4 | }
5 | }
6 | .badge {
7 | text-transform: uppercase;
8 | }
9 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_breadcrumbs.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumb
3 | //
4 |
5 | .breadcrumb-item {
6 | font-size: $font-size-sm;
7 | &.text-white{
8 | &::before {
9 | color: $white;
10 | }
11 | }
12 |
13 | }
14 |
15 | .breadcrumb-dark {
16 | background-color: $breadcrumb-dark-bg;
17 |
18 | .breadcrumb-item {
19 | font-weight: 600;
20 |
21 | a {
22 | color: $breadcrumb-dark-color;
23 |
24 | &:hover {
25 | color: $breadcrumb-dark-hover-color;
26 | }
27 | }
28 |
29 | + .breadcrumb-item {
30 | &::before {
31 | color: $breadcrumb-dark-divider-color;
32 | }
33 | }
34 |
35 | &.active {
36 | color: $breadcrumb-dark-active-color;
37 | }
38 | }
39 | }
40 |
41 |
42 | // Links
43 |
44 | .breadcrumb-links {
45 | padding: 0;
46 | margin: 0;
47 | background: transparent;
48 | }
49 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_cards.scss:
--------------------------------------------------------------------------------
1 | .card {
2 | box-shadow: $card-box-shadow;
3 | .card-header {
4 | padding: $card-header-padding;
5 | }
6 |
7 | .card-body {
8 | font-family: $font-family-sans-serif;
9 | padding: $card-body-padding;
10 | }
11 |
12 | &.card-plain {
13 | background-color: $card-plain-bg-color;
14 | box-shadow: $card-plain-box-shadow;
15 | }
16 |
17 | .card-footer {
18 | padding: $card-footer-padding;
19 | background-color: transparent;
20 | }
21 | }
22 |
23 | .author {
24 | display: $card-author-display;
25 |
26 | .name > span {
27 | line-height: $card-author-name-line-height;
28 | font-weight: $font-weight-bold;
29 | font-size: $font-size-sm;
30 | color: $card-author-name-color;
31 | }
32 |
33 | .stats {
34 | font-size: $font-size-sm;
35 | font-weight: $font-weight-normal;
36 | }
37 | }
38 |
39 | @import 'cards/card-background';
40 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_dropup.scss:
--------------------------------------------------------------------------------
1 | .dropup {
2 | .dropdown-menu {
3 | box-shadow: $dropdown-box-shadow;
4 | transition: $dropdown-transition;
5 | cursor: pointer;
6 | top: auto !important;
7 | bottom: 100% !important;
8 | margin-bottom: $dropup-mb !important;
9 | display: block;
10 | opacity: 0;
11 | transform-origin: $dropup-transform-origin;
12 | pointer-events: none;
13 | transform: $dropup-transform;
14 | -webkit-backface-visibility: hidden;
15 | backface-visibility: hidden;
16 | will-change: transform,box-shadow;
17 |
18 | &.show{
19 | pointer-events: auto;
20 | transform: $dropup-transform-show;
21 | opacity: 1;
22 |
23 | &:after {
24 | bottom: -($dropup-animation-arrow-bottom-position - 2);
25 | }
26 | }
27 |
28 | &:after {
29 | font-family: "FontAwesome";
30 | content: "\f0d7";
31 | position: absolute;
32 | z-index: -1;
33 | bottom: $dropup-animation-arrow-bottom-position;
34 | left: $dropdown-animation-arrow-left-position;
35 | right: auto;
36 | font-size: $dropdown-animation-arrow-font-size;
37 | color: $white;
38 | transition: $dropup-animation-arrow-transition;
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_fixed-plugin.scss:
--------------------------------------------------------------------------------
1 | .fixed-plugin{
2 | .fixed-plugin-button{
3 | background: $white;
4 | border-radius: $fixed-plugin-radius;
5 | bottom: $fixed-plugin-bottom;
6 | right: $fixed-plugin-right;
7 | font-size: $font-size-xl;
8 | z-index: $fixed-plugin-button-z-index;
9 | box-shadow: $fixed-plugin-box-shadow;
10 | cursor: pointer;
11 | i{
12 | pointer-events: none;
13 | }
14 | }
15 | .card{
16 | position: fixed !important;
17 | right: -$fixed-plugin-card-width;
18 | top: 0;
19 | height: 100%;
20 | left: auto!important;
21 | transform: unset !important;
22 | width: $fixed-plugin-card-width;
23 | border-radius: 0;
24 | padding: 0 10px;
25 | transition: .2s ease;
26 | z-index: $fixed-plugin-card-z-index;
27 | }
28 |
29 | .badge{
30 | border: 1px solid $white;
31 | border-radius: 50%;
32 | cursor: pointer;
33 | display: inline-block;
34 | height: 23px;
35 | margin-right: 5px;
36 | position: relative;
37 | width: 23px;
38 | transition: $transition-base;
39 | &:hover,
40 | &.active{
41 | border-color: $dark;
42 | }
43 | }
44 |
45 | .btn.bg-gradient-primary:not(:disabled):not(.disabled){
46 | border: 1px solid transparent;
47 | &:not(.active){
48 | background-color: transparent;
49 | background-image: none;
50 | border: 1px solid $primary;
51 | color: $primary;
52 | }
53 | }
54 |
55 | &.show{
56 | .card{
57 | right: 0;
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_footer.scss:
--------------------------------------------------------------------------------
1 | .footer {
2 | .nav-link {
3 | color: $dark;
4 | font-weight: $font-weight-normal;
5 | font-size: $font-size-sm;
6 | padding-top: 0;
7 | padding-bottom: $nav-link-footer-padding;
8 |
9 | &:hover {
10 | opacity: 1 !important;
11 | transition: $footer-link-animation;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_forms.scss:
--------------------------------------------------------------------------------
1 | .input-group {
2 | @include border-radius($input-border-radius, 0);
3 |
4 | &,
5 | .input-group-text {
6 | transition: $input-transition;
7 | }
8 |
9 | & > :not(:first-child):not(.dropdown-menu) {
10 | margin-left: 0;
11 | }
12 |
13 | .form-control {
14 | box-shadow: none;
15 | background-image: none;
16 |
17 | &:not(:first-child) {
18 | border-left: 0;
19 | padding-left: 0;
20 | }
21 | &:not(:last-child) {
22 | border-right: 0;
23 | padding-right: 0;
24 | }
25 |
26 | & + .input-group-text {
27 | border-left: 0;
28 | border-right: $input-border-width solid $input-border-color;
29 | }
30 | }
31 |
32 | .input-group-text {
33 | border-right: 0;
34 | }
35 |
36 |
37 |
38 | &.focused {
39 | box-shadow: $input-focus-box-shadow;
40 | }
41 |
42 | &.focused .input-group-text {
43 | border-color: $input-focus-border-color;
44 | }
45 | }
46 |
47 |
48 | .form-group {
49 | margin-bottom: 1rem;
50 | }
51 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_gradients.scss:
--------------------------------------------------------------------------------
1 | @each $prop, $value in $theme-gradient-colors {
2 | .bg-gradient-#{$prop} {
3 | @include gradient-directional(nth($value, 1) 0%, nth($value, -1) 100%, $deg: 310deg);
4 | }
5 | }
6 |
7 | @each $prop, $value in $theme-colors {
8 | .bg-gradient-faded-#{$prop} {
9 | background-image: radial-gradient(370px circle at 80% 50%,rgba($value, .6) 0,darken($value, 10%) 100%)
10 | }
11 | }
12 |
13 |
14 | @each $prop, $value in $theme-colors {
15 | .bg-gradient-faded-#{$prop}-vertical{
16 | background-image: radial-gradient(200px circle at 50% 70%, rgba($value, .3) 0, $value 100%);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_header.scss:
--------------------------------------------------------------------------------
1 | .page-header {
2 | padding: $page-header-padding;
3 | position: $page-header-position;
4 | overflow: $page-header-overflow;
5 | display: $page-header-display;
6 | align-items: $page-header-align-items;
7 | background-size: $page-header-bg-size;
8 | background-position: $page-header-bg-position;
9 |
10 | .container {
11 | z-index: $page-header-conteiner-index;
12 | }
13 | }
14 |
15 | .oblique {
16 | transform: $header-oblique-transform;
17 | overflow: $header-oblique-overflow;
18 | width: $header-oblique-img-width;
19 | right: $header-oblique-img-right;
20 | border-bottom-left-radius: $border-radius-lg;
21 |
22 | .oblique-image {
23 | transform: $header-oblique-img-transform;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_pagination.scss:
--------------------------------------------------------------------------------
1 | .page-item {
2 | &.active .page-link {
3 | box-shadow: $pagination-active-box-shadow;
4 | }
5 |
6 | .page-link,
7 | span {
8 | display: $page-link-display;
9 | align-items: $page-link-align-items;
10 | justify-content: $page-link-justify-content;
11 | color: $secondary;
12 | padding: 0;
13 | margin: $page-link-margin;
14 | border-radius: $page-link-radius !important;
15 | width: $page-link-width;
16 | height: $page-link-height;
17 | font-size: $font-size-sm;
18 | }
19 | }
20 |
21 | .pagination-lg {
22 | .page-item {
23 | .page-link,
24 | span {
25 | width: $page-link-width-lg;
26 | height: $page-link-height-lg;
27 | line-height: $page-link-line-height-lg;
28 | }
29 | }
30 | }
31 |
32 | .pagination-sm {
33 | .page-item {
34 | .page-link,
35 | span {
36 | width: $page-link-width-sm;
37 | height: $page-link-height-sm;
38 | line-height: $page-link-line-height-sm;
39 | }
40 | }
41 | }
42 |
43 |
44 | // Colors
45 | .pagination {
46 | @each $name, $value in $theme-gradient-colors {
47 | &.pagination-#{$name} {
48 | .page-item.active > .page-link {
49 | &,
50 | &:focus,
51 | &:hover {
52 | @include gradient-directional(nth($value, 1) 0%, nth($value, -1) 100%, $deg: 310deg);
53 | border: none;
54 | }
55 | }
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_popovers.scss:
--------------------------------------------------------------------------------
1 | .popover {
2 | box-shadow: $popover-box-shadow;
3 | }
4 |
5 | // popover title
6 | .popover {
7 | .popover-header {
8 | font-weight: 600;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_progress.scss:
--------------------------------------------------------------------------------
1 | .progress-bar {
2 | height: $progress-bar-height;
3 | border-radius: $border-radius;
4 | margin-top: -0.095rem;
5 | margin-left: -1px;
6 | }
7 |
8 | .progress {
9 | overflow: visible;
10 |
11 | &.progress-sm {
12 | height: $progress-height-sm;
13 | }
14 | &.progress-lg {
15 | height: $progress-height-lg;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_rtl.scss:
--------------------------------------------------------------------------------
1 | // breadcrumb
2 |
3 | .rtl {
4 | .breadcrumb {
5 | .breadcrumb-item + .breadcrumb-item::before {
6 | float: right;
7 | padding-left: $breadcrumb-item-padding-x;
8 | padding-right: 0;
9 | }
10 | }
11 |
12 | .sidenav {
13 | .navbar-nav {
14 | width: 100%;
15 | padding-right: 0;
16 | }
17 | }
18 |
19 | .fixed-plugin {
20 | .fixed-plugin-button {
21 | left: $fixed-plugin-right;
22 | right: auto;
23 | }
24 |
25 | .card {
26 | left: -$fixed-plugin-card-width !important;
27 | right: auto;
28 | }
29 |
30 | &.show {
31 | .card {
32 | right: auto;
33 | left: 0 !important;
34 | }
35 | }
36 | }
37 |
38 | .timeline {
39 | .timeline-content {
40 | margin-right: $timeline-content-margin-left;
41 | margin-left: 0;
42 | }
43 |
44 | .timeline-step {
45 | transform: $timeline-step-transform-rtl;
46 | }
47 |
48 | &.timeline-one-side {
49 | &:before {
50 | right: $timeline-left;
51 | }
52 |
53 | .timeline-step {
54 | right: $timeline-left;
55 | }
56 | }
57 | }
58 |
59 | .form-check {
60 | &.form-switch {
61 | .form-check-input {
62 | &:after {
63 | transform: translateX(-$form-switch-translate-x-start);
64 | }
65 |
66 | &:checked:after {
67 | transform: translateX(-$form-switch-translate-x-end);
68 | }
69 | }
70 | }
71 | }
72 |
73 | .avatar-group {
74 | .avatar + .avatar {
75 | margin-left: 0;
76 | margin-right: $avatar-group-double;
77 | }
78 | }
79 |
80 | .dropdown {
81 | .dropdown-menu {
82 | left: 0;
83 | }
84 | }
85 |
86 | .input-group {
87 | .input-group-text {
88 | border-left: 0;
89 | border-top-left-radius: 0;
90 | border-bottom-left-radius: 0;
91 | border-right: $input-border-width solid $input-border-color;
92 | }
93 |
94 | & > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
95 | margin-right: -1px;
96 | border-top-left-radius: $input-border-radius;
97 | border-bottom-left-radius: $input-border-radius;
98 | border-right: 0;
99 | border-left: $input-border-width solid $input-border-color;
100 | }
101 |
102 | &:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3),
103 | &:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) {
104 | border-top-right-radius: $input-border-radius;
105 | border-bottom-right-radius: $input-border-radius;
106 | }
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_social-buttons.scss:
--------------------------------------------------------------------------------
1 | .btn {
2 | // social buttons
3 | &.btn-facebook {
4 | @include social-buttons-color($facebook, $facebook-states);
5 | }
6 | &.btn-twitter {
7 | @include social-buttons-color($twitter, $twitter-states);
8 | }
9 | &.btn-pinterest {
10 | @include social-buttons-color($pinterest, $pinterest-states);
11 | }
12 | &.btn-linkedin {
13 | @include social-buttons-color($linkedin, $linkedin-states);
14 | }
15 | &.btn-dribbble {
16 | @include social-buttons-color($dribbble, $dribbble-states);
17 | }
18 | &.btn-github {
19 | @include social-buttons-color($github, $github-states);
20 | }
21 | &.btn-youtube {
22 | @include social-buttons-color($youtube, $youtube-states);
23 | }
24 | &.btn-instagram {
25 | @include social-buttons-color($instagram, $instagram-states);
26 | }
27 | &.btn-reddit {
28 | @include social-buttons-color($reddit, $reddit-states);
29 | }
30 | &.btn-tumblr {
31 | @include social-buttons-color($tumblr, $tumblr-states);
32 | }
33 | &.btn-behance {
34 | @include social-buttons-color($behance, $behance-states);
35 | }
36 | &.btn-vimeo {
37 | @include social-buttons-color($vimeo, $vimeo-states);
38 | }
39 | &.btn-slack {
40 | @include social-buttons-color($slack, $slack-states);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_tables.scss:
--------------------------------------------------------------------------------
1 | // General styles
2 |
3 | .table {
4 | border-collapse: inherit;
5 |
6 | thead th {
7 | padding: $table-head-spacer-y $table-head-spacer-x;
8 | text-transform: $table-head-text-transform;
9 | letter-spacing: $table-head-letter-spacing;
10 | border-bottom: $table-border-width solid $table-border-color;
11 | }
12 |
13 | th {
14 | font-weight: $table-head-font-weight;
15 | }
16 |
17 | td {
18 | .progress {
19 | height: $table-progress-height;
20 | width: $table-progress-width;
21 | margin: $table-progress-margin;
22 | }
23 | }
24 |
25 | td,
26 | th {
27 | white-space: nowrap;
28 | }
29 | // Vetical align table content
30 | &.align-items-center {
31 | td,
32 | th {
33 | vertical-align: middle;
34 | }
35 | }
36 | tbody{
37 | tr:last-child{
38 | td{
39 | border-width: 0;
40 | }
41 | }
42 | }
43 |
44 | > :not(:last-child) > :last-child > * {
45 | border-bottom-color: $light;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_tilt.scss:
--------------------------------------------------------------------------------
1 | // Tilt Animation
2 | .tilt {
3 | -webkit-transform-style: $tilt-transform-style;
4 | transform-style: $tilt-transform-style;
5 |
6 | .up {
7 | -webkit-transform: $tilt-transform-up-transform;
8 | transform: $tilt-transform-up-transform !important;
9 | transition: $tilt-transform-up-transition;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_tooltips.scss:
--------------------------------------------------------------------------------
1 | .bs-tooltip-auto[x-placement^=right] .tooltip-arrow,
2 | .bs-tooltip-right .tooltip-arrow {
3 | left: $tooltip-arrow-left;
4 | }
5 |
6 | .bs-tooltip-auto[x-placement^=left] .tooltip-arrow,
7 | .bs-tooltip-left .tooltip-arrow {
8 | right: $tooltip-arrow-right;
9 | }
10 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/_utilities-extend.scss:
--------------------------------------------------------------------------------
1 | @each $name, $value in $max-width-dim{
2 | .max-width-#{$name} {
3 | max-width: $value !important;
4 | }
5 | }
6 |
7 | @each $name, $value in $width-dim{
8 | .width-#{$name} {
9 | width: $value !important;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_alert.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Base styles
3 | //
4 |
5 | .alert {
6 | // scss-docs-start alert-css-vars
7 | --#{$prefix}alert-bg: transparent;
8 | --#{$prefix}alert-padding-x: #{$alert-padding-x};
9 | --#{$prefix}alert-padding-y: #{$alert-padding-y};
10 | --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
11 | --#{$prefix}alert-color: inherit;
12 | --#{$prefix}alert-border-color: transparent;
13 | --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
14 | --#{$prefix}alert-border-radius: #{$alert-border-radius};
15 | // scss-docs-end alert-css-vars
16 |
17 | position: relative;
18 | padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
19 | margin-bottom: var(--#{$prefix}alert-margin-bottom);
20 | color: var(--#{$prefix}alert-color);
21 | background-color: var(--#{$prefix}alert-bg);
22 | border: var(--#{$prefix}alert-border);
23 | border-radius: var(--#{$prefix}alert-border-radius, 0); // stylelint-disable-line property-disallowed-list
24 | }
25 |
26 | // Headings for larger alerts
27 | .alert-heading {
28 | // Specified to prevent conflicts of changing $headings-color
29 | color: inherit;
30 | }
31 |
32 | // Provide class for links that match alerts
33 | .alert-link {
34 | font-weight: $alert-link-font-weight;
35 | }
36 |
37 |
38 | // Dismissible alerts
39 | //
40 | // Expand the right padding and account for the close button's positioning.
41 |
42 | .alert-dismissible {
43 | padding-right: $alert-dismissible-padding-r;
44 |
45 | // Adjust close link position
46 | .btn-close {
47 | position: absolute;
48 | top: 0;
49 | right: 0;
50 | z-index: $stretched-link-z-index + 1;
51 | padding: $alert-padding-y * 1.25 $alert-padding-x;
52 | }
53 | }
54 |
55 |
56 | // scss-docs-start alert-modifiers
57 | // Generate contextual modifier classes for colorizing the alert.
58 |
59 | @each $state, $value in $theme-colors {
60 | $alert-background: shift-color($value, $alert-bg-scale);
61 | $alert-border: shift-color($value, $alert-border-scale);
62 | $alert-color: shift-color($value, $alert-color-scale);
63 |
64 | @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
65 | $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
66 | }
67 | .alert-#{$state} {
68 | @include alert-variant($alert-background, $alert-border, $alert-color);
69 | }
70 | }
71 | // scss-docs-end alert-modifiers
72 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_badge.scss:
--------------------------------------------------------------------------------
1 | // stylelint-disable custom-property-empty-line-before
2 |
3 | // Base class
4 | //
5 | // Requires one of the contextual, color modifier classes for `color` and
6 | // `background-color`.
7 |
8 | .badge {
9 | // scss-docs-start badge-css-vars
10 | --#{$prefix}badge-padding-x: #{$badge-padding-x};
11 | --#{$prefix}badge-padding-y: #{$badge-padding-y};
12 | @include rfs($badge-font-size, --#{$prefix}badge-font-size);
13 | --#{$prefix}badge-font-weight: #{$badge-font-weight};
14 | --#{$prefix}badge-color: #{$badge-color};
15 | --#{$prefix}badge-border-radius: #{$badge-border-radius};
16 | // scss-docs-end badge-css-vars
17 |
18 | display: inline-block;
19 | padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
20 | @include font-size(var(--#{$prefix}badge-font-size));
21 | font-weight: var(--#{$prefix}badge-font-weight);
22 | line-height: 1;
23 | color: var(--#{$prefix}badge-color);
24 | text-align: center;
25 | white-space: nowrap;
26 | vertical-align: baseline;
27 | border-radius: var(--#{$prefix}badge-border-radius, 0); // stylelint-disable-line property-disallowed-list
28 | @include gradient-bg();
29 |
30 | // Empty badges collapse automatically
31 | &:empty {
32 | display: none;
33 | }
34 | }
35 |
36 | // Quick fix for badges in buttons
37 | .btn .badge {
38 | position: relative;
39 | top: -1px;
40 | }
41 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_breadcrumb.scss:
--------------------------------------------------------------------------------
1 | // stylelint-disable custom-property-empty-line-before
2 |
3 | .breadcrumb {
4 | // scss-docs-start breadcrumb-css-vars
5 | --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
6 | --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
7 | --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
8 | @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);
9 | --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
10 | --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
11 | --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
12 | --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
13 | --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
14 | // scss-docs-end breadcrumb-css-vars
15 |
16 | display: flex;
17 | flex-wrap: wrap;
18 | padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);
19 | margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
20 | @include font-size(var(--#{$prefix}breadcrumb-font-size));
21 | list-style: none;
22 | background-color: var(--#{$prefix}breadcrumb-bg);
23 | @include border-radius(var(--#{$prefix}breadcrumb-border-radius));
24 | }
25 |
26 | .breadcrumb-item {
27 | // The separator between breadcrumbs (by default, a forward-slash: "/")
28 | + .breadcrumb-item {
29 | padding-left: var(--#{$prefix}breadcrumb-item-padding-x);
30 |
31 | &::before {
32 | float: left; // Suppress inline spacings and underlining of the separator
33 | padding-right: var(--#{$prefix}breadcrumb-item-padding-x);
34 | color: var(--#{$prefix}breadcrumb-divider-color);
35 | content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
36 | }
37 | }
38 |
39 | &.active {
40 | color: var(--#{$prefix}breadcrumb-item-active-color);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_close.scss:
--------------------------------------------------------------------------------
1 | // Transparent background and border properties included for button version.
2 | // iOS requires the button element instead of an anchor tag.
3 | // If you want the anchor version, it requires `href="#"`.
4 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
5 |
6 | .btn-close {
7 | box-sizing: content-box;
8 | width: $btn-close-width;
9 | height: $btn-close-height;
10 | padding: $btn-close-padding-y $btn-close-padding-x;
11 | color: $btn-close-color;
12 | background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
13 | border: 0; // for button elements
14 | @include border-radius();
15 | opacity: $btn-close-opacity;
16 |
17 | // Override 's hover style
18 | &:hover {
19 | color: $btn-close-color;
20 | text-decoration: none;
21 | opacity: $btn-close-hover-opacity;
22 | }
23 |
24 | &:focus {
25 | outline: 0;
26 | box-shadow: $btn-close-focus-shadow;
27 | opacity: $btn-close-focus-opacity;
28 | }
29 |
30 | &:disabled,
31 | &.disabled {
32 | pointer-events: none;
33 | user-select: none;
34 | opacity: $btn-close-disabled-opacity;
35 | }
36 | }
37 |
38 | .btn-close-white {
39 | filter: $btn-close-white-filter;
40 | }
41 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_containers.scss:
--------------------------------------------------------------------------------
1 | // Container widths
2 | //
3 | // Set the container width, and override it for fixed navbars in media queries.
4 |
5 | @if $enable-container-classes {
6 | // Single container class with breakpoint max-widths
7 | .container,
8 | // 100% wide container at all breakpoints
9 | .container-fluid {
10 | @include make-container();
11 | }
12 |
13 | // Responsive containers that are 100% wide until a breakpoint
14 | @each $breakpoint, $container-max-width in $container-max-widths {
15 | .container-#{$breakpoint} {
16 | @extend .container-fluid;
17 | }
18 |
19 | @include media-breakpoint-up($breakpoint, $grid-breakpoints) {
20 | %responsive-container-#{$breakpoint} {
21 | max-width: $container-max-width;
22 | }
23 |
24 | // Extend each breakpoint which is smaller or equal to the current breakpoint
25 | $extend-breakpoint: true;
26 |
27 | @each $name, $width in $grid-breakpoints {
28 | @if ($extend-breakpoint) {
29 | .container#{breakpoint-infix($name, $grid-breakpoints)} {
30 | @extend %responsive-container-#{$breakpoint};
31 | }
32 |
33 | // Once the current breakpoint is reached, stop extending
34 | @if ($breakpoint == $name) {
35 | $extend-breakpoint: false;
36 | }
37 | }
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_forms.scss:
--------------------------------------------------------------------------------
1 | @import "forms/labels";
2 | @import "forms/form-text";
3 | @import "forms/form-control";
4 | @import "forms/form-select";
5 | @import "forms/form-check";
6 | @import "forms/form-range";
7 | @import "forms/floating-labels";
8 | @import "forms/input-group";
9 | @import "forms/validation";
10 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_grid.scss:
--------------------------------------------------------------------------------
1 | // Row
2 | //
3 | // Rows contain your columns.
4 |
5 | @if $enable-grid-classes {
6 | .row {
7 | @include make-row();
8 |
9 | > * {
10 | @include make-col-ready();
11 | }
12 | }
13 | }
14 |
15 | @if $enable-cssgrid {
16 | .grid {
17 | display: grid;
18 | grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);
19 | grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);
20 | gap: var(--#{$prefix}gap, #{$grid-gutter-width});
21 |
22 | @include make-cssgrid();
23 | }
24 | }
25 |
26 |
27 | // Columns
28 | //
29 | // Common styles for small and large grid columns
30 |
31 | @if $enable-grid-classes {
32 | @include make-grid-columns();
33 | }
34 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_helpers.scss:
--------------------------------------------------------------------------------
1 | @import "helpers/clearfix";
2 | @import "helpers/color-bg";
3 | @import "helpers/colored-links";
4 | @import "helpers/ratio";
5 | @import "helpers/position";
6 | @import "helpers/stacks";
7 | @import "helpers/visually-hidden";
8 | @import "helpers/stretched-link";
9 | @import "helpers/text-truncation";
10 | @import "helpers/vr";
11 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_images.scss:
--------------------------------------------------------------------------------
1 | // Responsive images (ensure images don't scale beyond their parents)
2 | //
3 | // This is purposefully opt-in via an explicit class rather than being the default for all `
`s.
4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2,
5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
6 | // which weren't expecting the images within themselves to be involuntarily resized.
7 | // See also https://github.com/twbs/bootstrap/issues/18178
8 | .img-fluid {
9 | @include img-fluid();
10 | }
11 |
12 |
13 | // Image thumbnails
14 | .img-thumbnail {
15 | padding: $thumbnail-padding;
16 | background-color: $thumbnail-bg;
17 | border: $thumbnail-border-width solid $thumbnail-border-color;
18 | @include border-radius($thumbnail-border-radius);
19 | @include box-shadow($thumbnail-box-shadow);
20 |
21 | // Keep them at most 100% wide
22 | @include img-fluid();
23 | }
24 |
25 | //
26 | // Figures
27 | //
28 |
29 | .figure {
30 | // Ensures the caption's text aligns with the image.
31 | display: inline-block;
32 | }
33 |
34 | .figure-img {
35 | margin-bottom: $spacer * .5;
36 | line-height: 1;
37 | }
38 |
39 | .figure-caption {
40 | @include font-size($figure-caption-font-size);
41 | color: $figure-caption-color;
42 | }
43 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_maps.scss:
--------------------------------------------------------------------------------
1 | // Re-assigned maps
2 | //
3 | // Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.
4 |
5 | // scss-docs-start theme-colors-rgb
6 | $theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default;
7 | // scss-docs-end theme-colors-rgb
8 |
9 | // Utilities maps
10 | //
11 | // Extends the default `$theme-colors` maps to help create our utilities.
12 |
13 | // Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.
14 | // scss-docs-start utilities-colors
15 | $utilities-colors: $theme-colors-rgb !default;
16 | // scss-docs-end utilities-colors
17 |
18 | // scss-docs-start utilities-text-colors
19 | $utilities-text: map-merge(
20 | $utilities-colors,
21 | (
22 | "black": to-rgb($black),
23 | "white": to-rgb($white),
24 | "body": to-rgb($body-color)
25 | )
26 | ) !default;
27 | $utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
28 | // scss-docs-end utilities-text-colors
29 |
30 | // scss-docs-start utilities-bg-colors
31 | $utilities-bg: map-merge(
32 | $utilities-colors,
33 | (
34 | "black": to-rgb($black),
35 | "white": to-rgb($white),
36 | "body": to-rgb($body-bg)
37 | )
38 | ) !default;
39 | $utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg") !default;
40 | // scss-docs-end utilities-bg-colors
41 |
42 | // scss-docs-start utilities-border-colors
43 | $utilities-border: map-merge(
44 | $utilities-colors,
45 | (
46 | "white": to-rgb($white)
47 | )
48 | ) !default;
49 | $utilities-border-colors: map-loop($utilities-border, rgba-css-var, "$key", "border") !default;
50 | // scss-docs-end utilities-border-colors
51 |
52 | $negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
53 |
54 | $gutters: $spacers !default;
55 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Toggles
2 | //
3 | // Used in conjunction with global variables to enable certain theme features.
4 |
5 | // Vendor
6 | @import "vendor/rfs";
7 |
8 | // Deprecate
9 | @import "mixins/deprecate";
10 |
11 | // Helpers
12 | @import "mixins/breakpoints";
13 | @import "mixins/color-scheme";
14 | @import "mixins/image";
15 | @import "mixins/resize";
16 | @import "mixins/visually-hidden";
17 | @import "mixins/reset-text";
18 | @import "mixins/text-truncate";
19 |
20 | // Utilities
21 | @import "mixins/utilities";
22 |
23 | // Components
24 | @import "mixins/alert";
25 | @import "mixins/backdrop";
26 | @import "mixins/buttons";
27 | @import "mixins/caret";
28 | @import "mixins/pagination";
29 | @import "mixins/lists";
30 | @import "mixins/list-group";
31 | @import "mixins/forms";
32 | @import "mixins/table-variants";
33 |
34 | // Skins
35 | @import "mixins/border-radius";
36 | @import "mixins/box-shadow";
37 | @import "mixins/gradients";
38 | @import "mixins/transition";
39 |
40 | // Layout
41 | @import "mixins/clearfix";
42 | @import "mixins/container";
43 | @import "mixins/grid";
44 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_placeholders.scss:
--------------------------------------------------------------------------------
1 | .placeholder {
2 | display: inline-block;
3 | min-height: 1em;
4 | vertical-align: middle;
5 | cursor: wait;
6 | background-color: currentcolor;
7 | opacity: $placeholder-opacity-max;
8 |
9 | &.btn::before {
10 | display: inline-block;
11 | content: "";
12 | }
13 | }
14 |
15 | // Sizing
16 | .placeholder-xs {
17 | min-height: .6em;
18 | }
19 |
20 | .placeholder-sm {
21 | min-height: .8em;
22 | }
23 |
24 | .placeholder-lg {
25 | min-height: 1.2em;
26 | }
27 |
28 | // Animation
29 | .placeholder-glow {
30 | .placeholder {
31 | animation: placeholder-glow 2s ease-in-out infinite;
32 | }
33 | }
34 |
35 | @keyframes placeholder-glow {
36 | 50% {
37 | opacity: $placeholder-opacity-min;
38 | }
39 | }
40 |
41 | .placeholder-wave {
42 | mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min)) 75%, $black 95%);
43 | mask-size: 200% 100%;
44 | animation: placeholder-wave 2s linear infinite;
45 | }
46 |
47 | @keyframes placeholder-wave {
48 | 100% {
49 | mask-position: -200% 0%;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_progress.scss:
--------------------------------------------------------------------------------
1 | // Disable animation if transitions are disabled
2 |
3 | // scss-docs-start progress-keyframes
4 | @if $enable-transitions {
5 | @keyframes progress-bar-stripes {
6 | 0% { background-position-x: $progress-height; }
7 | }
8 | }
9 | // scss-docs-end progress-keyframes
10 |
11 | .progress {
12 | // scss-docs-start progress-css-vars
13 | --#{$prefix}progress-height: #{$progress-height};
14 | @include rfs($progress-font-size, --#{$prefix}progress-font-size);
15 | --#{$prefix}progress-bg: #{$progress-bg}; // stylelint-disable-line custom-property-empty-line-before
16 | --#{$prefix}progress-border-radius: #{$progress-border-radius};
17 | --#{$prefix}progress-box-shadow: #{$progress-box-shadow};
18 | --#{$prefix}progress-bar-color: #{$progress-bar-color};
19 | --#{$prefix}progress-bar-bg: #{$progress-bar-bg};
20 | --#{$prefix}progress-bar-transition: #{$progress-bar-transition};
21 | // scss-docs-end progress-css-vars
22 |
23 | display: flex;
24 | height: var(--#{$prefix}progress-height);
25 | overflow: hidden; // force rounded corners by cropping it
26 | @include font-size(var(--#{$prefix}progress-font-size));
27 | background-color: var(--#{$prefix}progress-bg);
28 | @include border-radius(var(--#{$prefix}progress-border-radius));
29 | @include box-shadow(var(--#{$prefix}progress-box-shadow));
30 | }
31 |
32 | .progress-bar {
33 | display: flex;
34 | flex-direction: column;
35 | justify-content: center;
36 | overflow: hidden;
37 | color: var(--#{$prefix}progress-bar-color);
38 | text-align: center;
39 | white-space: nowrap;
40 | background-color: var(--#{$prefix}progress-bar-bg);
41 | @include transition(var(--#{$prefix}progress-bar-transition));
42 | }
43 |
44 | .progress-bar-striped {
45 | @include gradient-striped();
46 | background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);
47 | }
48 |
49 | @if $enable-transitions {
50 | .progress-bar-animated {
51 | animation: $progress-bar-animation-timing progress-bar-stripes;
52 |
53 | @if $enable-reduced-motion {
54 | @media (prefers-reduced-motion: reduce) {
55 | animation: none;
56 | }
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_root.scss:
--------------------------------------------------------------------------------
1 | // stylelint-disable custom-property-empty-line-before
2 |
3 | :root {
4 | // Note: Custom variable values only support SassScript inside `#{}`.
5 |
6 | // Colors
7 | //
8 | // Generate palettes for full colors, grays, and theme colors.
9 |
10 | @each $color, $value in $colors {
11 | --#{$prefix}#{$color}: #{$value};
12 | }
13 |
14 | @each $color, $value in $grays {
15 | --#{$prefix}gray-#{$color}: #{$value};
16 | }
17 |
18 | @each $color, $value in $theme-colors {
19 | --#{$prefix}#{$color}: #{$value};
20 | }
21 |
22 | @each $color, $value in $theme-colors-rgb {
23 | --#{$prefix}#{$color}-rgb: #{$value};
24 | }
25 |
26 | --#{$prefix}white-rgb: #{to-rgb($white)};
27 | --#{$prefix}black-rgb: #{to-rgb($black)};
28 | --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
29 | --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
30 |
31 | // Fonts
32 |
33 | // Note: Use `inspect` for lists so that quoted items keep the quotes.
34 | // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
35 | --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
36 | --#{$prefix}font-monospace: #{inspect($font-family-monospace)};
37 | --#{$prefix}gradient: #{$gradient};
38 |
39 | // Root and body
40 | // scss-docs-start root-body-variables
41 | @if $font-size-root != null {
42 | --#{$prefix}root-font-size: #{$font-size-root};
43 | }
44 | --#{$prefix}body-font-family: #{$font-family-base};
45 | @include rfs($font-size-base, --#{$prefix}body-font-size);
46 | --#{$prefix}body-font-weight: #{$font-weight-base};
47 | --#{$prefix}body-line-height: #{$line-height-base};
48 | --#{$prefix}body-color: #{$body-color};
49 | @if $body-text-align != null {
50 | --#{$prefix}body-text-align: #{$body-text-align};
51 | }
52 | --#{$prefix}body-bg: #{$body-bg};
53 | // scss-docs-end root-body-variables
54 |
55 | // scss-docs-start root-border-var
56 | --#{$prefix}border-width: #{$border-width};
57 | --#{$prefix}border-style: #{$border-style};
58 | --#{$prefix}border-color: #{$border-color};
59 | --#{$prefix}border-color-translucent: #{$border-color-translucent};
60 |
61 | --#{$prefix}border-radius: #{$border-radius};
62 | --#{$prefix}border-radius-sm: #{$border-radius-sm};
63 | --#{$prefix}border-radius-lg: #{$border-radius-lg};
64 | --#{$prefix}border-radius-xl: #{$border-radius-xl};
65 | --#{$prefix}border-radius-2xl: #{$border-radius-2xl};
66 | --#{$prefix}border-radius-pill: #{$border-radius-pill};
67 | // scss-docs-end root-border-var
68 |
69 | --#{$prefix}heading-color: #{$headings-color};
70 | --#{$prefix}link-color: #{$link-color};
71 | --#{$prefix}link-hover-color: #{$link-hover-color};
72 |
73 | --#{$prefix}code-color: #{$code-color};
74 |
75 | --#{$prefix}highlight-bg: #{$mark-bg};
76 | }
77 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_spinners.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Rotating border
3 | //
4 |
5 | .spinner-grow,
6 | .spinner-border {
7 | display: inline-block;
8 | width: var(--#{$prefix}spinner-width);
9 | height: var(--#{$prefix}spinner-height);
10 | vertical-align: var(--#{$prefix}spinner-vertical-align);
11 | // stylelint-disable-next-line property-disallowed-list
12 | border-radius: 50%;
13 | animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);
14 | }
15 |
16 | // scss-docs-start spinner-border-keyframes
17 | @keyframes spinner-border {
18 | to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
19 | }
20 | // scss-docs-end spinner-border-keyframes
21 |
22 | .spinner-border {
23 | // scss-docs-start spinner-border-css-vars
24 | --#{$prefix}spinner-width: #{$spinner-width};
25 | --#{$prefix}spinner-height: #{$spinner-height};
26 | --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
27 | --#{$prefix}spinner-border-width: #{$spinner-border-width};
28 | --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
29 | --#{$prefix}spinner-animation-name: spinner-border;
30 | // scss-docs-end spinner-border-css-vars
31 |
32 | border: var(--#{$prefix}spinner-border-width) solid currentcolor;
33 | border-right-color: transparent;
34 | }
35 |
36 | .spinner-border-sm {
37 | // scss-docs-start spinner-border-sm-css-vars
38 | --#{$prefix}spinner-width: #{$spinner-width-sm};
39 | --#{$prefix}spinner-height: #{$spinner-height-sm};
40 | --#{$prefix}spinner-border-width: #{$spinner-border-width-sm};
41 | // scss-docs-end spinner-border-sm-css-vars
42 | }
43 |
44 | //
45 | // Growing circle
46 | //
47 |
48 | // scss-docs-start spinner-grow-keyframes
49 | @keyframes spinner-grow {
50 | 0% {
51 | transform: scale(0);
52 | }
53 | 50% {
54 | opacity: 1;
55 | transform: none;
56 | }
57 | }
58 | // scss-docs-end spinner-grow-keyframes
59 |
60 | .spinner-grow {
61 | // scss-docs-start spinner-grow-css-vars
62 | --#{$prefix}spinner-width: #{$spinner-width};
63 | --#{$prefix}spinner-height: #{$spinner-height};
64 | --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
65 | --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
66 | --#{$prefix}spinner-animation-name: spinner-grow;
67 | // scss-docs-end spinner-grow-css-vars
68 |
69 | background-color: currentcolor;
70 | opacity: 0;
71 | }
72 |
73 | .spinner-grow-sm {
74 | --#{$prefix}spinner-width: #{$spinner-width-sm};
75 | --#{$prefix}spinner-height: #{$spinner-height-sm};
76 | }
77 |
78 | @if $enable-reduced-motion {
79 | @media (prefers-reduced-motion: reduce) {
80 | .spinner-border,
81 | .spinner-grow {
82 | --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2};
83 | }
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_toasts.scss:
--------------------------------------------------------------------------------
1 | .toast {
2 | // scss-docs-start toast-css-vars
3 | --#{$prefix}toast-padding-x: #{$toast-padding-x};
4 | --#{$prefix}toast-padding-y: #{$toast-padding-y};
5 | --#{$prefix}toast-spacing: #{$toast-spacing};
6 | --#{$prefix}toast-max-width: #{$toast-max-width};
7 | @include rfs($toast-font-size, --#{$prefix}toast-font-size);
8 | --#{$prefix}toast-color: #{$toast-color}; // stylelint-disable-line custom-property-empty-line-before
9 | --#{$prefix}toast-bg: #{$toast-background-color};
10 | --#{$prefix}toast-border-width: #{$toast-border-width};
11 | --#{$prefix}toast-border-color: #{$toast-border-color};
12 | --#{$prefix}toast-border-radius: #{$toast-border-radius};
13 | --#{$prefix}toast-box-shadow: #{$toast-box-shadow};
14 | --#{$prefix}toast-header-color: #{$toast-header-color};
15 | --#{$prefix}toast-header-bg: #{$toast-header-background-color};
16 | --#{$prefix}toast-header-border-color: #{$toast-header-border-color};
17 | // scss-docs-end toast-css-vars
18 |
19 | width: var(--#{$prefix}toast-max-width);
20 | max-width: 100%;
21 | @include font-size(var(--#{$prefix}toast-font-size));
22 | color: var(--#{$prefix}toast-color);
23 | pointer-events: auto;
24 | background-color: var(--#{$prefix}toast-bg);
25 | background-clip: padding-box;
26 | border: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-border-color);
27 | box-shadow: var(--#{$prefix}toast-box-shadow);
28 | @include border-radius(var(--#{$prefix}toast-border-radius));
29 |
30 | &.showing {
31 | opacity: 0;
32 | }
33 |
34 | &:not(.show) {
35 | display: none;
36 | }
37 | }
38 |
39 | .toast-container {
40 | position: absolute;
41 | z-index: $zindex-toast;
42 | width: max-content;
43 | max-width: 100%;
44 | pointer-events: none;
45 |
46 | > :not(:last-child) {
47 | margin-bottom: var(--#{$prefix}toast-spacing);
48 | }
49 | }
50 |
51 | .toast-header {
52 | display: flex;
53 | align-items: center;
54 | padding: var(--#{$prefix}toast-padding-y) var(--#{$prefix}toast-padding-x);
55 | color: var(--#{$prefix}toast-header-color);
56 | background-color: var(--#{$prefix}toast-header-bg);
57 | background-clip: padding-box;
58 | border-bottom: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-header-border-color);
59 | @include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));
60 |
61 | .btn-close {
62 | margin-right: calc(var(--#{$prefix}toast-padding-x) * -.5); // stylelint-disable-line function-disallowed-list
63 | margin-left: var(--#{$prefix}toast-padding-x);
64 | }
65 | }
66 |
67 | .toast-body {
68 | padding: var(--#{$prefix}toast-padding-x);
69 | word-wrap: break-word;
70 | }
71 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_transitions.scss:
--------------------------------------------------------------------------------
1 | .fade {
2 | @include transition($transition-fade);
3 |
4 | &:not(.show) {
5 | opacity: 0;
6 | }
7 | }
8 |
9 | // scss-docs-start collapse-classes
10 | .collapse {
11 | &:not(.show) {
12 | display: none;
13 | }
14 | }
15 |
16 | .collapsing {
17 | height: 0;
18 | overflow: hidden;
19 | @include transition($transition-collapse);
20 |
21 | &.collapse-horizontal {
22 | width: 0;
23 | height: auto;
24 | @include transition($transition-collapse-width);
25 | }
26 | }
27 | // scss-docs-end collapse-classes
28 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/_type.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Headings
3 | //
4 | .h1 {
5 | @extend h1;
6 | }
7 |
8 | .h2 {
9 | @extend h2;
10 | }
11 |
12 | .h3 {
13 | @extend h3;
14 | }
15 |
16 | .h4 {
17 | @extend h4;
18 | }
19 |
20 | .h5 {
21 | @extend h5;
22 | }
23 |
24 | .h6 {
25 | @extend h6;
26 | }
27 |
28 |
29 | .lead {
30 | @include font-size($lead-font-size);
31 | font-weight: $lead-font-weight;
32 | }
33 |
34 | // Type display classes
35 | @each $display, $font-size in $display-font-sizes {
36 | .display-#{$display} {
37 | @include font-size($font-size);
38 | font-weight: $display-font-weight;
39 | line-height: $display-line-height;
40 | }
41 | }
42 |
43 | //
44 | // Emphasis
45 | //
46 | .small {
47 | @extend small;
48 | }
49 |
50 | .mark {
51 | @extend mark;
52 | }
53 |
54 | //
55 | // Lists
56 | //
57 |
58 | .list-unstyled {
59 | @include list-unstyled();
60 | }
61 |
62 | // Inline turns list items into inline-block
63 | .list-inline {
64 | @include list-unstyled();
65 | }
66 | .list-inline-item {
67 | display: inline-block;
68 |
69 | &:not(:last-child) {
70 | margin-right: $list-inline-padding;
71 | }
72 | }
73 |
74 |
75 | //
76 | // Misc
77 | //
78 |
79 | // Builds on `abbr`
80 | .initialism {
81 | @include font-size($initialism-font-size);
82 | text-transform: uppercase;
83 | }
84 |
85 | // Blockquotes
86 | .blockquote {
87 | margin-bottom: $blockquote-margin-y;
88 | @include font-size($blockquote-font-size);
89 |
90 | > :last-child {
91 | margin-bottom: 0;
92 | }
93 | }
94 |
95 | .blockquote-footer {
96 | margin-top: -$blockquote-margin-y;
97 | margin-bottom: $blockquote-margin-y;
98 | @include font-size($blockquote-footer-font-size);
99 | color: $blockquote-footer-color;
100 |
101 | &::before {
102 | content: "\2014\00A0"; // em dash, nbsp
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/bootstrap-grid.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grid v5.2.0-beta1 (https://getbootstrap.com/)
3 | * Copyright 2011-2022 The Bootstrap Authors
4 | * Copyright 2011-2022 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | */
7 |
8 | $include-column-box-sizing: true !default;
9 |
10 | @import "functions";
11 | @import "variables";
12 | @import "maps";
13 |
14 | @import "mixins/lists";
15 | @import "mixins/breakpoints";
16 | @import "mixins/container";
17 | @import "mixins/grid";
18 | @import "mixins/utilities";
19 |
20 | @import "vendor/rfs";
21 |
22 | @import "root";
23 |
24 | @import "containers";
25 | @import "grid";
26 |
27 | @import "utilities";
28 | // Only use the utilities we need
29 | // stylelint-disable-next-line scss/dollar-variable-default
30 | $utilities: map-get-multiple(
31 | $utilities,
32 | (
33 | "display",
34 | "order",
35 | "flex",
36 | "flex-direction",
37 | "flex-grow",
38 | "flex-shrink",
39 | "flex-wrap",
40 | "justify-content",
41 | "align-items",
42 | "align-content",
43 | "align-self",
44 | "margin",
45 | "margin-x",
46 | "margin-y",
47 | "margin-top",
48 | "margin-end",
49 | "margin-bottom",
50 | "margin-start",
51 | "negative-margin",
52 | "negative-margin-x",
53 | "negative-margin-y",
54 | "negative-margin-top",
55 | "negative-margin-end",
56 | "negative-margin-bottom",
57 | "negative-margin-start",
58 | "padding",
59 | "padding-x",
60 | "padding-y",
61 | "padding-top",
62 | "padding-end",
63 | "padding-bottom",
64 | "padding-start",
65 | )
66 | );
67 |
68 | @import "utilities/api";
69 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/bootstrap-reboot.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.2.0-beta1 (https://getbootstrap.com/)
3 | * Copyright 2011-2022 The Bootstrap Authors
4 | * Copyright 2011-2022 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 |
9 | @import "functions";
10 | @import "variables";
11 | @import "maps";
12 | @import "mixins";
13 | @import "root";
14 | @import "reboot";
15 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/bootstrap-utilities.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Utilities v5.2.0-beta1 (https://getbootstrap.com/)
3 | * Copyright 2011-2022 The Bootstrap Authors
4 | * Copyright 2011-2022 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | */
7 |
8 | // Configuration
9 | @import "functions";
10 | @import "variables";
11 | @import "maps";
12 | @import "mixins";
13 | @import "utilities";
14 |
15 | // Helpers
16 | @import "helpers";
17 |
18 | // Utilities
19 | @import "utilities/api";
20 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/bootstrap.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v5.2.0-beta1 (https://getbootstrap.com/)
3 | * Copyright 2011-2022 The Bootstrap Authors
4 | * Copyright 2011-2022 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | */
7 |
8 | // scss-docs-start import-stack
9 | // Configuration
10 | @import "functions";
11 | @import "variables";
12 | @import "maps";
13 | @import "mixins";
14 | @import "utilities";
15 |
16 | // Layout & components
17 | @import "root";
18 | @import "reboot";
19 | @import "type";
20 | @import "images";
21 | @import "containers";
22 | @import "grid";
23 | @import "tables";
24 | @import "forms";
25 | @import "buttons";
26 | @import "transitions";
27 | @import "dropdown";
28 | @import "button-group";
29 | @import "nav";
30 | @import "navbar";
31 | @import "card";
32 | @import "accordion";
33 | @import "breadcrumb";
34 | @import "pagination";
35 | @import "badge";
36 | @import "alert";
37 | @import "progress";
38 | @import "list-group";
39 | @import "close";
40 | @import "toasts";
41 | @import "modal";
42 | @import "tooltip";
43 | @import "popover";
44 | @import "carousel";
45 | @import "spinners";
46 | @import "offcanvas";
47 | @import "placeholders";
48 |
49 | // Helpers
50 | @import "helpers";
51 |
52 | // Utilities
53 | @import "utilities/api";
54 | // scss-docs-end import-stack
55 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/forms/_floating-labels.scss:
--------------------------------------------------------------------------------
1 | .form-floating {
2 | position: relative;
3 |
4 | > .form-control,
5 | > .form-control-plaintext,
6 | > .form-select {
7 | height: $form-floating-height;
8 | line-height: $form-floating-line-height;
9 | }
10 |
11 | > label {
12 | position: absolute;
13 | top: 0;
14 | left: 0;
15 | height: 100%; // allow textareas
16 | padding: $form-floating-padding-y $form-floating-padding-x;
17 | pointer-events: none;
18 | border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model
19 | transform-origin: 0 0;
20 | @include transition($form-floating-transition);
21 | }
22 |
23 | > .form-control,
24 | > .form-control-plaintext {
25 | padding: $form-floating-padding-y $form-floating-padding-x;
26 |
27 | &::placeholder {
28 | color: transparent;
29 | }
30 |
31 | &:focus,
32 | &:not(:placeholder-shown) {
33 | padding-top: $form-floating-input-padding-t;
34 | padding-bottom: $form-floating-input-padding-b;
35 | }
36 | // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
37 | &:-webkit-autofill {
38 | padding-top: $form-floating-input-padding-t;
39 | padding-bottom: $form-floating-input-padding-b;
40 | }
41 | }
42 |
43 | > .form-select {
44 | padding-top: $form-floating-input-padding-t;
45 | padding-bottom: $form-floating-input-padding-b;
46 | }
47 |
48 | > .form-control:focus,
49 | > .form-control:not(:placeholder-shown),
50 | > .form-control-plaintext,
51 | > .form-select {
52 | ~ label {
53 | opacity: $form-floating-label-opacity;
54 | transform: $form-floating-label-transform;
55 | }
56 | }
57 | // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
58 | > .form-control:-webkit-autofill {
59 | ~ label {
60 | opacity: $form-floating-label-opacity;
61 | transform: $form-floating-label-transform;
62 | }
63 | }
64 |
65 | > .form-control-plaintext {
66 | ~ label {
67 | border-width: $input-border-width 0; // Required to properly position label text - as explained above
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/forms/_form-select.scss:
--------------------------------------------------------------------------------
1 | // Select
2 | //
3 | // Replaces the browser default select with a custom one, mostly pulled from
4 | // https://primer.github.io/.
5 |
6 | .form-select {
7 | display: block;
8 | width: 100%;
9 | padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
10 | -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
11 | font-family: $form-select-font-family;
12 | @include font-size($form-select-font-size);
13 | font-weight: $form-select-font-weight;
14 | line-height: $form-select-line-height;
15 | color: $form-select-color;
16 | background-color: $form-select-bg;
17 | background-image: escape-svg($form-select-indicator);
18 | background-repeat: no-repeat;
19 | background-position: $form-select-bg-position;
20 | background-size: $form-select-bg-size;
21 | border: $form-select-border-width solid $form-select-border-color;
22 | @include border-radius($form-select-border-radius, 0);
23 | @include box-shadow($form-select-box-shadow);
24 | @include transition($form-select-transition);
25 | appearance: none;
26 |
27 | &:focus {
28 | border-color: $form-select-focus-border-color;
29 | outline: 0;
30 | @if $enable-shadows {
31 | @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);
32 | } @else {
33 | // Avoid using mixin so we can pass custom focus shadow properly
34 | box-shadow: $form-select-focus-box-shadow;
35 | }
36 | }
37 |
38 | &[multiple],
39 | &[size]:not([size="1"]) {
40 | padding-right: $form-select-padding-x;
41 | background-image: none;
42 | }
43 |
44 | &:disabled {
45 | color: $form-select-disabled-color;
46 | background-color: $form-select-disabled-bg;
47 | border-color: $form-select-disabled-border-color;
48 | }
49 |
50 | // Remove outline from select box in FF
51 | &:-moz-focusring {
52 | color: transparent;
53 | text-shadow: 0 0 0 $form-select-color;
54 | }
55 | }
56 |
57 | .form-select-sm {
58 | padding-top: $form-select-padding-y-sm;
59 | padding-bottom: $form-select-padding-y-sm;
60 | padding-left: $form-select-padding-x-sm;
61 | @include font-size($form-select-font-size-sm);
62 | @include border-radius($form-select-border-radius-sm);
63 | }
64 |
65 | .form-select-lg {
66 | padding-top: $form-select-padding-y-lg;
67 | padding-bottom: $form-select-padding-y-lg;
68 | padding-left: $form-select-padding-x-lg;
69 | @include font-size($form-select-font-size-lg);
70 | @include border-radius($form-select-border-radius-lg);
71 | }
72 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/forms/_form-text.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Form text
3 | //
4 |
5 | .form-text {
6 | margin-top: $form-text-margin-top;
7 | @include font-size($form-text-font-size);
8 | font-style: $form-text-font-style;
9 | font-weight: $form-text-font-weight;
10 | color: $form-text-color;
11 | }
12 |
--------------------------------------------------------------------------------
/apps/static/assets/scss/soft-ui-dashboard/bootstrap/forms/_labels.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | //
4 |
5 | .form-label {
6 | margin-bottom: $form-label-margin-bottom;
7 | @include font-size($form-label-font-size);
8 | font-style: $form-label-font-style;
9 | font-weight: $form-label-font-weight;
10 | color: $form-label-color;
11 | }
12 |
13 | // For use with horizontal and inline forms, when you need the label (or legend)
14 | // text to align with the form controls.
15 | .col-form-label {
16 | padding-top: add($input-padding-y, $input-border-width);
17 | padding-bottom: add($input-padding-y, $input-border-width);
18 | margin-bottom: 0; // Override the `