Compare commits
23 commits
Author | SHA1 | Date | |
---|---|---|---|
|
a098f9b9b3 | ||
|
75fe83a41f | ||
|
3c22af1933 | ||
|
83f61a4c9e | ||
|
637bc48a7b | ||
|
8646590b48 | ||
|
1a7a2c00d7 | ||
|
691e1192d4 | ||
|
9c8b772ecb | ||
|
4b95292b14 | ||
|
28f65de0c5 | ||
|
4811fbeada | ||
|
1f4a9c13be | ||
|
067a2fc729 | ||
|
5b268e4d35 | ||
|
cd6169d0b3 | ||
|
f03c371255 | ||
|
4e77270a93 | ||
|
9c0da4c17e | ||
|
3a1885d551 | ||
|
56fce7f69f | ||
|
8b38e16ea9 | ||
|
e4baa59f34 |
197 changed files with 1664 additions and 57194 deletions
9
agent/apps.py
Normal file
9
agent/apps.py
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class AgentConfig(AppConfig):
|
||||||
|
default_auto_field = "django.db.models.BigAutoField"
|
||||||
|
name = "agent"
|
||||||
|
|
||||||
|
def ready(self):
|
||||||
|
from . import signals
|
40
agent/migrations/0001_initial.py
Normal file
40
agent/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# Generated by Django 4.1.6 on 2023-02-24 15:18
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="Agent",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("name", models.CharField(max_length=255)),
|
||||||
|
(
|
||||||
|
"user",
|
||||||
|
models.OneToOneField(
|
||||||
|
null=True,
|
||||||
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
|
to=settings.AUTH_USER_MODEL,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
26
agent/migrations/0002_alter_agent_user.py
Normal file
26
agent/migrations/0002_alter_agent_user.py
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# Generated by Django 4.1.6 on 2023-03-08 00:51
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
("agent", "0001_initial"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="agent",
|
||||||
|
name="user",
|
||||||
|
field=models.OneToOneField(
|
||||||
|
blank=True,
|
||||||
|
null=True,
|
||||||
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
|
to=settings.AUTH_USER_MODEL,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
|
@ -4,7 +4,10 @@ from django.db import models
|
||||||
|
|
||||||
class Agent(models.Model):
|
class Agent(models.Model):
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
|
user = models.OneToOneField(User, on_delete=models.SET_NULL, blank=True, null=True)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"Agent_{self.name}"
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"Agent_{self.name}"
|
return self.name
|
11
agent/signals.py
Normal file
11
agent/signals.py
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
from django.db.models.signals import post_save
|
||||||
|
from django.dispatch import receiver
|
||||||
|
|
||||||
|
from .models import Agent
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(post_save, sender=User)
|
||||||
|
def create_profile(sender, instance, created, **kwargs):
|
||||||
|
if created:
|
||||||
|
Agent.objects.create(name=instance.username, user=instance)
|
4
agent/urls.py
Normal file
4
agent/urls.py
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
"""backend URL Configuration
|
||||||
|
"""
|
||||||
|
|
||||||
|
urlpatterns = []
|
24
agent/views.py
Normal file
24
agent/views.py
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
from django.urls import reverse_lazy
|
||||||
|
from django.views.generic import ListView
|
||||||
|
from django.views.generic.edit import CreateView, DeleteView, UpdateView
|
||||||
|
|
||||||
|
from .models import Agent
|
||||||
|
|
||||||
|
|
||||||
|
class AgentList(ListView):
|
||||||
|
model = Agent
|
||||||
|
|
||||||
|
|
||||||
|
class AgentCreate(CreateView):
|
||||||
|
model = Agent
|
||||||
|
success_url = reverse_lazy("agent_list")
|
||||||
|
|
||||||
|
|
||||||
|
class AgentUpdate(UpdateView):
|
||||||
|
model = Agent
|
||||||
|
success_url = reverse_lazy("agent_list")
|
||||||
|
|
||||||
|
|
||||||
|
class AgentDelete(DeleteView):
|
||||||
|
model = Agent
|
||||||
|
success_url = reverse_lazy("agent_list")
|
78
budget/migrations/0001_initial.py
Normal file
78
budget/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
# Generated by Django 4.1.6 on 2023-03-06 10:01
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("agent", "0001_initial"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="BudgetGroup",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("name", models.CharField(max_length=255, verbose_name="Intitulé")),
|
||||||
|
(
|
||||||
|
"description",
|
||||||
|
models.TextField(blank=True, verbose_name="Description"),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="BudgetLine",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"amount",
|
||||||
|
models.DecimalField(
|
||||||
|
decimal_places=2, max_digits=12, verbose_name="Montant"
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("comment", models.TextField(blank=True, verbose_name="Commentaire")),
|
||||||
|
(
|
||||||
|
"date",
|
||||||
|
models.DateField(default=datetime.date.today, verbose_name="Date"),
|
||||||
|
),
|
||||||
|
("title", models.CharField(max_length=255, verbose_name="Libellé")),
|
||||||
|
(
|
||||||
|
"author",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.PROTECT,
|
||||||
|
to="agent.agent",
|
||||||
|
verbose_name="Auteur",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"group",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
to="budget.budgetgroup",
|
||||||
|
verbose_name="Budget",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
47
budget/migrations/0002_add_permissions.py
Normal file
47
budget/migrations/0002_add_permissions.py
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# Generated by Django 4.1.6 on 2023-02-24 15:03
|
||||||
|
|
||||||
|
from django.contrib.auth.management import create_permissions
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
def apply_migration(apps, schema_editor):
|
||||||
|
# Create all permissions
|
||||||
|
for app_config in apps.get_app_configs():
|
||||||
|
app_config.models_module = True
|
||||||
|
create_permissions(app_config, verbosity=0)
|
||||||
|
app_config.models_module = None
|
||||||
|
Group = apps.get_model("auth", "Group")
|
||||||
|
grp, _ = Group.objects.get_or_create(name="hackens_member")
|
||||||
|
grp.save()
|
||||||
|
|
||||||
|
Permission = apps.get_model("auth", "Permission")
|
||||||
|
ContentType = apps.get_model("contenttypes", "ContentType")
|
||||||
|
|
||||||
|
BudgetGroup = apps.get_model("budget", "BudgetGroup")
|
||||||
|
BudgetLine = apps.get_model("budget", "BudgetLine")
|
||||||
|
|
||||||
|
content_type = ContentType.objects.get_for_model(BudgetGroup)
|
||||||
|
all_permissions = Permission.objects.filter(content_type=content_type)
|
||||||
|
grp.permissions.add(*all_permissions)
|
||||||
|
|
||||||
|
content_type = ContentType.objects.get_for_model(BudgetLine)
|
||||||
|
all_permissions = Permission.objects.filter(content_type=content_type)
|
||||||
|
grp.permissions.add(*all_permissions)
|
||||||
|
|
||||||
|
grp.save()
|
||||||
|
|
||||||
|
|
||||||
|
def revert_migration(apps, schema_editor):
|
||||||
|
Group = apps.get_model("auth", "Group")
|
||||||
|
Group.objects.filter(
|
||||||
|
name="hackens_member",
|
||||||
|
).delete()
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("budget", "0001_initial"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [migrations.RunPython(apply_migration, revert_migration)]
|
22
budget/migrations/0003_alter_budgetline_amount.py
Normal file
22
budget/migrations/0003_alter_budgetline_amount.py
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# Generated by Django 4.1.6 on 2024-06-09 17:30
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("budget", "0002_add_permissions"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="budgetline",
|
||||||
|
name="amount",
|
||||||
|
field=models.DecimalField(
|
||||||
|
decimal_places=2,
|
||||||
|
max_digits=12,
|
||||||
|
verbose_name="Montant (dépense en négatif)",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
39
budget/models.py
Normal file
39
budget/models.py
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
from datetime import date
|
||||||
|
|
||||||
|
from agent.models import Agent
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetLine(models.Model):
|
||||||
|
title = models.CharField(max_length=255, verbose_name="Libellé")
|
||||||
|
amount = models.DecimalField(
|
||||||
|
max_digits=12, decimal_places=2, verbose_name="Montant (dépense en négatif)"
|
||||||
|
)
|
||||||
|
author = models.ForeignKey(Agent, on_delete=models.PROTECT, verbose_name="Auteur")
|
||||||
|
date = models.DateField(default=date.today, verbose_name="Date")
|
||||||
|
group = models.ForeignKey(
|
||||||
|
"BudgetGroup", on_delete=models.CASCADE, verbose_name="Budget"
|
||||||
|
)
|
||||||
|
comment = models.TextField(blank=True, verbose_name="Commentaire")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f"{self.title}"
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"BudgetLine_{self.title}_{self.amount}€"
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetGroup(models.Model):
|
||||||
|
name = models.CharField(max_length=255, verbose_name="Intitulé")
|
||||||
|
description = models.TextField(blank=True, verbose_name="Description")
|
||||||
|
|
||||||
|
def get_all_lines(self):
|
||||||
|
lines = self.budgetline_set.all().order_by("date")
|
||||||
|
s = 0
|
||||||
|
return [(line, s := s + line.amount) for line in lines]
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f"{self.name}"
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"BudgetGroup_{self.name}"
|
BIN
budget/static/media/favicon.ico
Normal file
BIN
budget/static/media/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
951
budget/static/media/logo.svg
Normal file
951
budget/static/media/logo.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 59 KiB |
65
budget/templates/budget/base.html
Normal file
65
budget/templates/budget/base.html
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
{% load static %}
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<link rel="stylesheet" href="{% static "css/pico.green.min.css" %}" type="text/css" media="screen" charset="utf-8">
|
||||||
|
<title>Hackens-orga</title>
|
||||||
|
<link rel="shortcut icon" href="{% static 'media/favicon.ico' %}">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="container">
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a aria-label="Page d'accueil" href="https://hackens.org">
|
||||||
|
<img style="height:50px;" src="{% static "media/logo.svg" %}" alt="Logo d'hackens"/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="hide-before-sm">
|
||||||
|
<a class="contrast" href="{% url "budgetgroup_list" %}">Accueil</a>
|
||||||
|
</li>
|
||||||
|
<li class="hide-before-sm">
|
||||||
|
<a class="contrast" href="https://www.eleves.ens.fr/pads/p/HackensCourses" >
|
||||||
|
Liste de courses
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% if user.is_staff %}
|
||||||
|
<li class="hide-before-sm">
|
||||||
|
<a class="contrast" href="{% url "admin:index" %}">Admin</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% if user.is_authenticated %}
|
||||||
|
<li>
|
||||||
|
<a href="{% url "authens:logout" %}">
|
||||||
|
<strong>Déconnexion</strong>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button>
|
||||||
|
🧑 {{ user.username }}
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<li>
|
||||||
|
<a href="{% url "authens:login" %}">
|
||||||
|
Connexion
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main class="container">
|
||||||
|
{% for m in messages %}
|
||||||
|
<article class="{{ m.level_tag }}" id="message-{{ forloop.counter0 }}">
|
||||||
|
{{ m }}
|
||||||
|
</article>
|
||||||
|
{% endfor %}
|
||||||
|
{% block content %}{% endblock %}
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
13
budget/templates/budget/budgetgroup_confirm_delete.html
Normal file
13
budget/templates/budget/budgetgroup_confirm_delete.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{% extends "budget/base.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% block content %}
|
||||||
|
<h3>Supprimer le budget {{ object }}</h3>
|
||||||
|
<section>
|
||||||
|
<form method="post">{% csrf_token %}
|
||||||
|
<div role="group">
|
||||||
|
<a href="#" role="button" class="outline">Annuler</a>
|
||||||
|
<input type="submit" value="Confirmer">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
18
budget/templates/budget/budgetgroup_form.html
Normal file
18
budget/templates/budget/budgetgroup_form.html
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{% extends "budget/base.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% block content %}
|
||||||
|
<h1>
|
||||||
|
{% if object %}
|
||||||
|
Editer
|
||||||
|
{% else %}
|
||||||
|
Créer
|
||||||
|
{% endif %}
|
||||||
|
un budget
|
||||||
|
</h1>
|
||||||
|
<section>
|
||||||
|
<form method="post">{% csrf_token %}
|
||||||
|
{{ form }}
|
||||||
|
<input type="submit" value="{% if object %}Mettre à jour{% else %}Créer{% endif %}">
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
92
budget/templates/budget/budgetgroup_list.html
Normal file
92
budget/templates/budget/budgetgroup_list.html
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
{% extends "budget/base.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% block content %}
|
||||||
|
<h2>Budget d'hackens
|
||||||
|
{% if perms.budget.add_budgetgroup %}
|
||||||
|
<a
|
||||||
|
role="button"
|
||||||
|
href="{% url "budgetgroup_new" %}"
|
||||||
|
>
|
||||||
|
Nouveau budget
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</h2>
|
||||||
|
{% for budgetGroup in object_list %}
|
||||||
|
{% with all_lines=budgetGroup.get_all_lines %}
|
||||||
|
<section>
|
||||||
|
<h3> Budget {{ budgetGroup.name }} - {{ all_lines|last|last }} €
|
||||||
|
{% if perms.budget.change_budgetgroup %}
|
||||||
|
<a
|
||||||
|
role="button"
|
||||||
|
class="outline"
|
||||||
|
href="{% url "budgetgroup_update" budgetGroup.id %}"
|
||||||
|
title="Éditer l'intitulé du budget"
|
||||||
|
>
|
||||||
|
🖊️
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if perms.budget.add_budgetline %}
|
||||||
|
<a role="button" href="{% url "budgetline_new" %}" title="Nouvelle ligne de budget">
|
||||||
|
Nouvelle ligne
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</h3>
|
||||||
|
{% if budgetGroup.description.strip %}
|
||||||
|
<p>
|
||||||
|
<strong>Description:</strong> {{ budgetGroup.description.strip }}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{% for line in all_lines %}
|
||||||
|
{% if forloop.first %}
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Date</th>
|
||||||
|
<th>Libellé</th>
|
||||||
|
<th>Montant</th>
|
||||||
|
<th>Budget restant</th>
|
||||||
|
<th>Ajouté par</th>
|
||||||
|
{% if perms.budget.change_budgetline %}
|
||||||
|
<th></th>
|
||||||
|
{% endif %}
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% endif %}
|
||||||
|
<tr id="tableline-{{ line.id }}">
|
||||||
|
<td>{{ line.0.date|date:"Y-m-d" }}</td>
|
||||||
|
<td>{{ line.0.title }}</td>
|
||||||
|
<td>{{ line.0.amount }}€</td>
|
||||||
|
<td>{{ line.1 }}€</td>
|
||||||
|
<td>{{ line.0.author.name }}</td>
|
||||||
|
{% if perms.budget.change_budgetline %}
|
||||||
|
<td>
|
||||||
|
<div class="buttons">
|
||||||
|
<nobr>
|
||||||
|
<a role="button" href="{% url "budgetline_update" line.0.id %}">
|
||||||
|
🖊️
|
||||||
|
</a>
|
||||||
|
{% if perms.budget.delete_budgetline %}
|
||||||
|
<a role="button" href="{% url "budgetline_delete" line.0.id %}" title="Supprimer la ligne de budget">🗑️</a>
|
||||||
|
{% endif %}
|
||||||
|
</nobr>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
{% endif %}
|
||||||
|
</tr>
|
||||||
|
{% if forloop.last %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
|
{% empty %}
|
||||||
|
<p>Ce budget est vide</p>
|
||||||
|
{% endfor %}
|
||||||
|
{% if perms.budget.add_budgetline %}
|
||||||
|
<a role="button" href="{% url "budgetline_new" %}" title="Nouvelle ligne de budget">
|
||||||
|
Nouvelle ligne
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</section>
|
||||||
|
{% endwith %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
13
budget/templates/budget/budgetline_confirm_delete.html
Normal file
13
budget/templates/budget/budgetline_confirm_delete.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{% extends "budget/base.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% block content %}
|
||||||
|
<h3>Supprimer la ligne de budget {{ object }}</h3>
|
||||||
|
<section>
|
||||||
|
<form method="post">{% csrf_token %}
|
||||||
|
<div role="group">
|
||||||
|
<a href="#" role="button" class="outline">Annuler</a>
|
||||||
|
<input type="submit" value="Confirmer">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
18
budget/templates/budget/budgetline_form.html
Normal file
18
budget/templates/budget/budgetline_form.html
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{% extends "budget/base.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% block content %}
|
||||||
|
<h1>
|
||||||
|
{% if object %}
|
||||||
|
Créer
|
||||||
|
{% else %}
|
||||||
|
Ajouter
|
||||||
|
{% endif %}
|
||||||
|
une ligne de budget
|
||||||
|
</h1>
|
||||||
|
<section>
|
||||||
|
<form method="post">{% csrf_token %}
|
||||||
|
{{ form }}
|
||||||
|
<input type="submit" value="{% if object %}Mettre à jour{% else %}Créer{% endif %}">
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
32
budget/urls.py
Normal file
32
budget/urls.py
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
"""
|
||||||
|
backend URL Configuration
|
||||||
|
"""
|
||||||
|
|
||||||
|
from django.urls import path
|
||||||
|
|
||||||
|
from . import views
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path("", views.BudgetGroupList.as_view(), name="budgetgroup_list"),
|
||||||
|
path("group/new", views.BudgetGroupCreate.as_view(), name="budgetgroup_new"),
|
||||||
|
path(
|
||||||
|
"group/edit/<int:pk>",
|
||||||
|
views.BudgetGroupUpdate.as_view(),
|
||||||
|
name="budgetgroup_update",
|
||||||
|
),
|
||||||
|
path(
|
||||||
|
"group/delete/<int:pk>",
|
||||||
|
views.BudgetGroupDelete.as_view(),
|
||||||
|
name="budgetgroup_delete",
|
||||||
|
),
|
||||||
|
path("line/view/<int:pk>", views.BudgetLineView.as_view(), name="budgetline_view"),
|
||||||
|
path("line/new", views.BudgetLineCreate.as_view(), name="budgetline_new"),
|
||||||
|
path(
|
||||||
|
"line/edit/<int:pk>", views.BudgetLineUpdate.as_view(), name="budgetline_update"
|
||||||
|
),
|
||||||
|
path(
|
||||||
|
"line/delete/<int:pk>",
|
||||||
|
views.BudgetLineDelete.as_view(),
|
||||||
|
name="budgetline_delete",
|
||||||
|
),
|
||||||
|
]
|
55
budget/views.py
Normal file
55
budget/views.py
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
from django.contrib.auth.mixins import PermissionRequiredMixin
|
||||||
|
from django.urls import reverse_lazy
|
||||||
|
from django.views.generic import DetailView, ListView
|
||||||
|
from django.views.generic.edit import CreateView, DeleteView, UpdateView
|
||||||
|
|
||||||
|
from .models import BudgetGroup, BudgetLine
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetGroupList(ListView):
|
||||||
|
model = BudgetGroup
|
||||||
|
ordering = "-name"
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetLineView(DetailView):
|
||||||
|
model = BudgetLine
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetLineCreate(PermissionRequiredMixin, CreateView):
|
||||||
|
permission_required = "budget.add_budgetline"
|
||||||
|
model = BudgetLine
|
||||||
|
success_url = reverse_lazy("budgetgroup_list")
|
||||||
|
fields = "__all__"
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetLineUpdate(PermissionRequiredMixin, UpdateView):
|
||||||
|
permission_required = "budget.change_budgetline"
|
||||||
|
model = BudgetLine
|
||||||
|
success_url = reverse_lazy("budgetgroup_list")
|
||||||
|
fields = "__all__"
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetLineDelete(PermissionRequiredMixin, DeleteView):
|
||||||
|
permission_required = "budget.delete_budgetline"
|
||||||
|
model = BudgetLine
|
||||||
|
success_url = reverse_lazy("budgetgroup_list")
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetGroupCreate(PermissionRequiredMixin, CreateView):
|
||||||
|
permission_required = "budget.add_budgetgroup"
|
||||||
|
model = BudgetGroup
|
||||||
|
success_url = reverse_lazy("budgetgroup_list")
|
||||||
|
fields = "__all__"
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetGroupUpdate(PermissionRequiredMixin, UpdateView):
|
||||||
|
permission_required = "budget.change_budgetgroup"
|
||||||
|
model = BudgetGroup
|
||||||
|
success_url = reverse_lazy("budgetgroup_list")
|
||||||
|
fields = "__all__"
|
||||||
|
|
||||||
|
|
||||||
|
class BudgetGroupDelete(PermissionRequiredMixin, DeleteView):
|
||||||
|
permission_required = "budget.delete_budgetgroup"
|
||||||
|
model = BudgetGroup
|
||||||
|
success_url = reverse_lazy("budgetgroup_list")
|
|
@ -1,6 +0,0 @@
|
||||||
from django.apps import AppConfig
|
|
||||||
|
|
||||||
|
|
||||||
class AgentConfig(AppConfig):
|
|
||||||
default_auto_field = 'django.db.models.BigAutoField'
|
|
||||||
name = 'agent'
|
|
|
@ -1,25 +0,0 @@
|
||||||
# Generated by Django 3.2.16 on 2023-02-08 00:51
|
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
initial = True
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Agent',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=255)),
|
|
||||||
('user', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,9 +0,0 @@
|
||||||
from rest_framework import serializers
|
|
||||||
|
|
||||||
from .models import Agent
|
|
||||||
|
|
||||||
|
|
||||||
class AgentSerializer(serializers.ModelSerializer):
|
|
||||||
class Meta:
|
|
||||||
model = Agent
|
|
||||||
fields = "__all__"
|
|
|
@ -1,13 +0,0 @@
|
||||||
"""backend URL Configuration
|
|
||||||
"""
|
|
||||||
|
|
||||||
from rest_framework import routers
|
|
||||||
|
|
||||||
from .views import AgentViewSet
|
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
|
||||||
|
|
||||||
router.register(r"agent", AgentViewSet)
|
|
||||||
|
|
||||||
app_name = "agent-backend"
|
|
||||||
urlpatterns = router.urls
|
|
|
@ -1,11 +0,0 @@
|
||||||
from rest_framework import viewsets
|
|
||||||
from rest_framework.permissions import IsAuthenticatedOrReadOnly
|
|
||||||
|
|
||||||
from .models import Agent
|
|
||||||
from .serializers import AgentSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class AgentViewSet(viewsets.ModelViewSet):
|
|
||||||
queryset = Agent.objects.all()
|
|
||||||
serializer_class = AgentSerializer
|
|
||||||
permission_class = [IsAuthenticatedOrReadOnly]
|
|
|
@ -1,38 +0,0 @@
|
||||||
# Generated by Django 3.2.16 on 2023-02-08 00:51
|
|
||||||
|
|
||||||
import datetime
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
initial = True
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('agent', '0001_initial'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='BudgetGroup',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=255)),
|
|
||||||
('description', models.TextField(blank=True)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='BudgetLine',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('amount', models.DecimalField(decimal_places=2, max_digits=12)),
|
|
||||||
('comment', models.TextField(blank=True)),
|
|
||||||
('date', models.DateField(default=datetime.date.today)),
|
|
||||||
('facture', models.FileField(blank=True, null=True, upload_to='factures/')),
|
|
||||||
('title', models.CharField(max_length=255)),
|
|
||||||
('author', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='agent.agent')),
|
|
||||||
('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='budget.budgetgroup')),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,28 +0,0 @@
|
||||||
from datetime import date
|
|
||||||
|
|
||||||
from agent.models import Agent
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class BudgetLine(models.Model):
|
|
||||||
amount = models.DecimalField(max_digits=12, decimal_places=2)
|
|
||||||
author = models.ForeignKey(Agent, on_delete=models.PROTECT)
|
|
||||||
comment = models.TextField(blank=True)
|
|
||||||
date = models.DateField(default=date.today)
|
|
||||||
facture = models.FileField(upload_to="factures/", null=True, blank=True)
|
|
||||||
group = models.ForeignKey("BudgetGroup", on_delete=models.CASCADE)
|
|
||||||
title = models.CharField(max_length=255)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return f"BudgetLine_{self.title}_{self.amount}€"
|
|
||||||
|
|
||||||
|
|
||||||
class BudgetGroup(models.Model):
|
|
||||||
name = models.CharField(max_length=255)
|
|
||||||
description = models.TextField(blank=True)
|
|
||||||
|
|
||||||
def get_total(self):
|
|
||||||
return sum(i.amount for i in self.budgetline_set.all())
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return f"BudgetGroup_{self.name}"
|
|
|
@ -1,23 +0,0 @@
|
||||||
from rest_framework import serializers
|
|
||||||
|
|
||||||
from .models import BudgetGroup, BudgetLine
|
|
||||||
|
|
||||||
|
|
||||||
class BudgetGroupSerializer(serializers.ModelSerializer):
|
|
||||||
total = serializers.SerializerMethodField()
|
|
||||||
|
|
||||||
def get_total(self, obj):
|
|
||||||
tot = 0
|
|
||||||
for i in obj.budgetline_set.all():
|
|
||||||
tot += i.amount
|
|
||||||
return tot
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = BudgetGroup
|
|
||||||
fields = "__all__"
|
|
||||||
|
|
||||||
|
|
||||||
class BudgetLineSerializer(serializers.ModelSerializer):
|
|
||||||
class Meta:
|
|
||||||
model = BudgetLine
|
|
||||||
fields = "__all__"
|
|
|
@ -1,14 +0,0 @@
|
||||||
"""backend URL Configuration
|
|
||||||
"""
|
|
||||||
|
|
||||||
from rest_framework import routers
|
|
||||||
|
|
||||||
from .views import BudgetGroupViewSet, BudgetLineViewSet
|
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
|
||||||
|
|
||||||
router.register(r"budgetgroup", BudgetGroupViewSet)
|
|
||||||
router.register(r"budgetline", BudgetLineViewSet)
|
|
||||||
|
|
||||||
app_name = "budget-backend"
|
|
||||||
urlpatterns = router.urls
|
|
|
@ -1,17 +0,0 @@
|
||||||
from rest_framework import viewsets
|
|
||||||
from rest_framework.permissions import IsAuthenticatedOrReadOnly
|
|
||||||
|
|
||||||
from .models import BudgetGroup, BudgetLine
|
|
||||||
from .serializers import BudgetGroupSerializer, BudgetLineSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class BudgetGroupViewSet(viewsets.ModelViewSet):
|
|
||||||
queryset = BudgetGroup.objects.all()
|
|
||||||
serializer_class = BudgetGroupSerializer
|
|
||||||
permission_class = [IsAuthenticatedOrReadOnly]
|
|
||||||
|
|
||||||
|
|
||||||
class BudgetLineViewSet(viewsets.ModelViewSet):
|
|
||||||
queryset = BudgetLine.objects.all()
|
|
||||||
serializer_class = BudgetLineSerializer
|
|
||||||
permission_class = [IsAuthenticatedOrReadOnly]
|
|
|
@ -1,3 +0,0 @@
|
||||||
from django.contrib import admin
|
|
||||||
|
|
||||||
# Register your models here.
|
|
|
@ -1,6 +0,0 @@
|
||||||
from django.apps import AppConfig
|
|
||||||
|
|
||||||
|
|
||||||
class FrontendConfig(AppConfig):
|
|
||||||
default_auto_field = 'django.db.models.BigAutoField'
|
|
||||||
name = 'frontend'
|
|
|
@ -1,3 +0,0 @@
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
# Create your models here.
|
|
|
@ -1,48 +0,0 @@
|
||||||
{% load static %}
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width" />
|
|
||||||
<link rel="stylesheet" href="{% static "css/bundle.css" %}" type="text/css" media="screen" charset="utf-8">
|
|
||||||
<title>Ernesto-nouveau</title>
|
|
||||||
</head>
|
|
||||||
<body class="has-navbar-fixed-top">
|
|
||||||
<nav class="navbar is-fixed-top" aria-label="main navigation">
|
|
||||||
<div class="navbar-brand">
|
|
||||||
<a class="navbar-item" href="https://new.hackens.org" >
|
|
||||||
<img src="{% static "media/logo.png" %}" alt="Logo d'hackens"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
|
|
||||||
<span aria-hidden="true"></span>
|
|
||||||
<span aria-hidden="true"></span>
|
|
||||||
<span aria-hidden="true"></span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="navbar-menu is-active">
|
|
||||||
<div class="navbar-start">
|
|
||||||
<a class="navbar-item" href="#" >
|
|
||||||
Budget
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="navbar-item" href="https://www.eleves.ens.fr/pads/p/HackensCourses" >
|
|
||||||
Liste de courses
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="navbar-end">
|
|
||||||
<div class="navbar-item">
|
|
||||||
<div class="buttons">
|
|
||||||
<a class="button is-primary" href="{% url "frontend:budget" %}">
|
|
||||||
<strong>Connexion</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
{% block content %}{% endblock %}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,33 +0,0 @@
|
||||||
{% extends "frontend/base.html" %}
|
|
||||||
{% block content %}
|
|
||||||
|
|
||||||
<section class="section content">
|
|
||||||
<h1 class="title is-3">Budget d'hackens</h1>
|
|
||||||
{% for budgetGroup in object_list %}
|
|
||||||
<h2 class="title is-4">Budget {{ budgetGroup.name }}: {{ budgetGroup.get_total }}€</h2>
|
|
||||||
<table class="table">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Date</th>
|
|
||||||
<th>Libellé</th>
|
|
||||||
<th>Montant</th>
|
|
||||||
<th>Ajouté par</th>
|
|
||||||
<th>Facture</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for line in budgetGroup.budgetline_set.all %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ line.date }}</td>
|
|
||||||
<td>{{ line.title }}</td>
|
|
||||||
<td>{{ line.amount }}€</td>
|
|
||||||
<td>{{ line.author.name }}</td>
|
|
||||||
<td>{{ line.facture }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{% endfor %}
|
|
||||||
</section>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
|
@ -1,3 +0,0 @@
|
||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
# Create your tests here.
|
|
|
@ -1,8 +0,0 @@
|
||||||
from django.urls import path
|
|
||||||
|
|
||||||
from .views import BudgetListView
|
|
||||||
|
|
||||||
app_name = "frontend"
|
|
||||||
urlpatterns = [
|
|
||||||
path("", BudgetListView.as_view(), name="budget"),
|
|
||||||
]
|
|
|
@ -1,8 +0,0 @@
|
||||||
from budget.models import BudgetGroup
|
|
||||||
from django.views.generic import (CreateView, DeleteView, DetailView, ListView,
|
|
||||||
TemplateView, UpdateView)
|
|
||||||
|
|
||||||
|
|
||||||
class BudgetListView(ListView):
|
|
||||||
model = BudgetGroup
|
|
||||||
template_name = "frontend/budget_list.html"
|
|
|
@ -12,6 +12,9 @@ https://docs.djangoproject.com/en/3.2/ref/settings/
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
from django.contrib import messages
|
||||||
|
from django.urls import reverse_lazy
|
||||||
|
|
||||||
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||||
|
|
||||||
|
@ -25,8 +28,11 @@ SECRET_KEY = "django-insecure-d4qh9v-en$&f%$j$jyhqkn_th#ow-e22bs^stx(n33sg-eyfhd
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
|
|
||||||
ALLOWED_HOSTS = []
|
ALLOWED_HOSTS = ["127.0.0.1", "localhost"]
|
||||||
|
|
||||||
|
INTERNAL_IPS = [
|
||||||
|
"127.0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
# Application definition
|
# Application definition
|
||||||
|
|
||||||
|
@ -37,15 +43,13 @@ INSTALLED_APPS = [
|
||||||
"django.contrib.sessions",
|
"django.contrib.sessions",
|
||||||
"django.contrib.messages",
|
"django.contrib.messages",
|
||||||
"django.contrib.staticfiles",
|
"django.contrib.staticfiles",
|
||||||
"rest_framework",
|
"authens",
|
||||||
# "django_extensions",
|
|
||||||
"budget",
|
"budget",
|
||||||
"agent",
|
"agent",
|
||||||
# "wishlist",
|
|
||||||
"frontend",
|
|
||||||
"shared",
|
"shared",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
"django.middleware.security.SecurityMiddleware",
|
"django.middleware.security.SecurityMiddleware",
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||||
|
@ -56,6 +60,14 @@ MIDDLEWARE = [
|
||||||
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if False: # Turn when dev
|
||||||
|
INSTALLED_APPS += [
|
||||||
|
"debug_toolbar",
|
||||||
|
]
|
||||||
|
MIDDLEWARE = [
|
||||||
|
"debug_toolbar.middleware.DebugToolbarMiddleware",
|
||||||
|
] + MIDDLEWARE
|
||||||
|
|
||||||
ROOT_URLCONF = "hackens_orga.urls"
|
ROOT_URLCONF = "hackens_orga.urls"
|
||||||
|
|
||||||
TEMPLATES = [
|
TEMPLATES = [
|
||||||
|
@ -76,16 +88,22 @@ TEMPLATES = [
|
||||||
|
|
||||||
WSGI_APPLICATION = "hackens_orga.wsgi.application"
|
WSGI_APPLICATION = "hackens_orga.wsgi.application"
|
||||||
|
|
||||||
# Django-rest-framework
|
# AuthENS
|
||||||
# https://www.django-rest-framework.org/
|
|
||||||
|
AUTHENTICATION_BACKENDS = [
|
||||||
|
"django.contrib.auth.backends.ModelBackend",
|
||||||
|
"authens.backends.ENSCASBackend",
|
||||||
|
]
|
||||||
|
|
||||||
|
AUTHENS_ALLOW_STAFF = True
|
||||||
|
AUTHENS_USE_OLDCAS = False
|
||||||
|
|
||||||
|
|
||||||
|
LOGIN_URL = reverse_lazy("authens:login")
|
||||||
|
|
||||||
|
LOGIN_REDIRECT_URL = reverse_lazy("budgetgroup_list")
|
||||||
|
LOGOUT_REDIRECT_URL = reverse_lazy("budgetgroup_list")
|
||||||
|
|
||||||
REST_FRAMEWORK = {
|
|
||||||
# Use Django's standard `django.contrib.auth` permissions,
|
|
||||||
# or allow read-only access for unauthenticated users.
|
|
||||||
"DEFAULT_PERMISSION_CLASSES": [
|
|
||||||
"rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
|
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
|
||||||
|
@ -145,7 +163,6 @@ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
||||||
|
|
||||||
# Messages tags
|
# Messages tags
|
||||||
|
|
||||||
from django.contrib import messages
|
|
||||||
|
|
||||||
MESSAGE_TAGS = {
|
MESSAGE_TAGS = {
|
||||||
messages.DEBUG: "is-warning",
|
messages.DEBUG: "is-warning",
|
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
@ -1,37 +0,0 @@
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
|
|
||||||
// Get all "navbar-burger" elements
|
|
||||||
const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
|
|
||||||
|
|
||||||
// Add a click event on each of them
|
|
||||||
$navbarBurgers.forEach( el => {
|
|
||||||
el.addEventListener('click', () => {
|
|
||||||
// Get the target from the "data-target" attribute
|
|
||||||
if ('target' in el.dataset) {
|
|
||||||
const target = el.dataset.target;
|
|
||||||
const $target = document.getElementById(target);
|
|
||||||
el.classList.toggle('is-active');
|
|
||||||
$target.classList.toggle('is-active');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
const $deleteElems = Array.prototype.slice.call(document.querySelectorAll('.delete'), 0);
|
|
||||||
|
|
||||||
// Add a click event on each of them
|
|
||||||
$deleteElems.forEach( el => {
|
|
||||||
el.addEventListener('click', () => {
|
|
||||||
// Get the target from the "data-target" attribute
|
|
||||||
if ('target' in el.dataset) {
|
|
||||||
const target = el.dataset.target;
|
|
||||||
const $target = document.getElementById(target);
|
|
||||||
$target.remove();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2022 Jeremy Thomas
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
|
@ -1,139 +0,0 @@
|
||||||
# [Bulma](https://bulma.io)
|
|
||||||
|
|
||||||
Bulma is a **modern CSS framework** based on [Flexbox](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes).
|
|
||||||
|
|
||||||
![Github](https://img.shields.io/github/v/release/jgthms/bulma?logo=Bulma)
|
|
||||||
[![npm](https://img.shields.io/npm/v/bulma.svg)][npm-link]
|
|
||||||
[![npm](https://img.shields.io/npm/dm/bulma.svg)][npm-link]
|
|
||||||
[![](https://data.jsdelivr.com/v1/package/npm/bulma/badge)](https://www.jsdelivr.com/package/npm/bulma)
|
|
||||||
[![Awesome][awesome-badge]][awesome-link]
|
|
||||||
[![Join the chat at https://gitter.im/jgthms/bulma](https://badges.gitter.im/jgthms/bulma.svg)](https://gitter.im/jgthms/bulma)
|
|
||||||
[![Build Status](https://travis-ci.org/jgthms/bulma.svg?branch=master)](https://travis-ci.org/jgthms/bulma)
|
|
||||||
|
|
||||||
<a href="https://bulma.io"><img src="https://raw.githubusercontent.com/jgthms/bulma/master/docs/images/bulma-banner.png" alt="Bulma: a Flexbox CSS framework" style="max-width:100%;" width="600"></a>
|
|
||||||
|
|
||||||
## Quick install
|
|
||||||
|
|
||||||
Bulma is constantly in development! Try it out now:
|
|
||||||
|
|
||||||
### NPM
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm install bulma
|
|
||||||
```
|
|
||||||
|
|
||||||
**or**
|
|
||||||
|
|
||||||
### Yarn
|
|
||||||
|
|
||||||
```sh
|
|
||||||
yarn add bulma
|
|
||||||
```
|
|
||||||
|
|
||||||
### Bower
|
|
||||||
|
|
||||||
```sh
|
|
||||||
bower install bulma
|
|
||||||
```
|
|
||||||
|
|
||||||
### Import
|
|
||||||
|
|
||||||
After installation, you can import the CSS file into your project using this snippet:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
@import 'bulma/css/bulma.css'
|
|
||||||
```
|
|
||||||
|
|
||||||
### CDN
|
|
||||||
|
|
||||||
[https://www.jsdelivr.com/package/npm/bulma](https://www.jsdelivr.com/package/npm/bulma)
|
|
||||||
|
|
||||||
Feel free to raise an issue or submit a pull request.
|
|
||||||
|
|
||||||
## CSS only
|
|
||||||
|
|
||||||
Bulma is a **CSS** framework. As such, the sole output is a single CSS file: [bulma.css](https://github.com/jgthms/bulma/blob/master/css/bulma.css)
|
|
||||||
|
|
||||||
You can either use that file, "out of the box", or download the Sass source files to customize the [variables](https://bulma.io/documentation/overview/variables/).
|
|
||||||
|
|
||||||
There is **no** JavaScript included. People generally want to use their own JS implementation (and usually already have one). Bulma can be considered "environment agnostic": it's just the style layer on top of the logic.
|
|
||||||
|
|
||||||
## Browser Support
|
|
||||||
|
|
||||||
Bulma uses [autoprefixer](https://github.com/postcss/autoprefixer) to make (most) Flexbox features compatible with earlier browser versions. According to [Can I use](https://caniuse.com/#feat=flexbox), Bulma is compatible with **recent** versions of:
|
|
||||||
|
|
||||||
- Chrome
|
|
||||||
- Edge
|
|
||||||
- Firefox
|
|
||||||
- Opera
|
|
||||||
- Safari
|
|
||||||
|
|
||||||
Internet Explorer (10+) is only partially supported.
|
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
The documentation resides in the [docs](docs) directory, and is built with the Ruby-based [Jekyll](https://jekyllrb.com/) tool.
|
|
||||||
|
|
||||||
Browse the [online documentation here.](https://bulma.io/documentation/overview/start/)
|
|
||||||
|
|
||||||
## Related projects
|
|
||||||
|
|
||||||
| Project | Description |
|
|
||||||
| ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
||||||
| [Bulma with Attribute Modules](https://github.com/j5bot/bulma-attribute-selectors) | Adds support for attribute-based selectors |
|
|
||||||
| [Bulma with Rails](https://github.com/joshuajansen/bulma-rails) | Integrates Bulma with the rails asset pipeline |
|
|
||||||
| [BulmaRazor](https://github.com/loogn/bulmarazor) | A lightweight component library based on Bulma and Blazor. |
|
|
||||||
| [Vue Admin (dead)](https://github.com/vue-bulma/vue-admin) | Vue Admin framework powered by Bulma |
|
|
||||||
| [Bulmaswatch](https://github.com/jenil/bulmaswatch) | Free themes for Bulma |
|
|
||||||
| [Goldfish (read-only)](https://github.com/Caiyeon/goldfish) | Vault UI with Bulma, Golang, and Vue Admin |
|
|
||||||
| [ember-bulma](https://github.com/open-tux/ember-bulma) | Ember addon providing a collection of UI components for Bulma |
|
|
||||||
| [Bloomer](https://bloomer.js.org) | A set of React components for Bulma |
|
|
||||||
| [React-bulma](https://github.com/kulakowka/react-bulma) | React.js components for Bulma |
|
|
||||||
| [Buefy](https://buefy.org/) | Lightweight UI components for Vue.js based on Bulma |
|
|
||||||
| [vue-bulma-components](https://github.com/vouill/vue-bulma-components) | Bulma components for Vue.js with straightforward syntax |
|
|
||||||
| [BulmaJS](https://github.com/VizuaaLOG/BulmaJS) | Javascript integration for Bulma. Written in ES6 with a data-\* API |
|
|
||||||
| [Bulma-modal-fx](https://github.com/postare/bulma-modal-fx) | A set of modal window effects with CSS transitions and animations for Bulma |
|
|
||||||
| [Bulma Stylus](https://github.com/groenroos/bulma-stylus) | Up-to-date 1:1 translation to Stylus |
|
|
||||||
| [Bulma.styl (read-only)](https://github.com/log1x/bulma.styl) | 1:1 Stylus translation of Bulma 0.6.11 |
|
|
||||||
| [elm-bulma](https://github.com/surprisetalk/elm-bulma) | Bulma + Elm |
|
|
||||||
| [elm-bulma-classes](https://github.com/ahstro/elm-bulma-classes) | Bulma classes prepared for usage with Elm |
|
|
||||||
| [Bulma Customizer](https://bulma-customizer.bstash.io/) | Bulma Customizer – Create your own **bespoke** Bulma build |
|
|
||||||
| [Fulma](https://fulma.github.io/Fulma/) | Wrapper around Bulma for [fable-react](https://github.com/fable-compiler/fable-react) |
|
|
||||||
| [Laravel Enso](https://github.com/laravel-enso/enso) | SPA Admin Panel built with Bulma, VueJS and Laravel |
|
|
||||||
| [Django Bulma](https://github.com/timonweb/django-bulma) | Integrates Bulma with Django |
|
|
||||||
| [Bulma Templates](https://github.com/dansup/bulma-templates) | Free Templates for Bulma |
|
|
||||||
| [React Bulma Components](https://github.com/couds/react-bulma-components) | Another React wrap on React for Bulma.io |
|
|
||||||
| [purescript-bulma](https://github.com/sectore/purescript-bulma) | PureScript bindings for Bulma |
|
|
||||||
| [Vue Datatable](https://github.com/laravel-enso/vuedatatable) | Bulma themed datatable based on Vue, Laravel & JSON templates |
|
|
||||||
| [bulma-fluent](https://mubaidr.github.io/bulma-fluent/) | Fluent Design Theme for Bulma inspired by Microsoft’s Fluent Design System |
|
|
||||||
| [csskrt-csskrt](https://github.com/4d11/csskrt-csskrt) | Automatically add Bulma classes to HTML files |
|
|
||||||
| [bulma-pagination-react](https://github.com/hipstersmoothie/bulma-pagination-react) | Bulma pagination as a react component |
|
|
||||||
| [bulma-helpers](https://github.com/jmaczan/bulma-helpers) | Functional / Atomic CSS classes for Bulma |
|
|
||||||
| [bulma-swatch-hook](https://github.com/hipstersmoothie/bulma-swatch-hook) | Bulma swatches as a react hook and a component |
|
|
||||||
| [BulmaWP (read-only)](https://github.com/tomhrtly/BulmaWP) | Starter WordPress theme for Bulma |
|
|
||||||
| [Ralma](https://github.com/aldi/ralma) | Stateless Ractive.js Components for Bulma |
|
|
||||||
| [Django Simple Bulma](https://github.com/python-discord/django-simple-bulma) | Lightweight integration of Bulma and Bulma-Extensions for your Django app |
|
|
||||||
| [rbx](https://dfee.github.io/rbx) | Comprehensive React UI Framework written in TypeScript |
|
|
||||||
| [Awesome Bulma Templates](https://github.com/aldi/awesome-bulma-templates) | Free real-world Templates built with Bulma |
|
|
||||||
| [Trunx](http://g14n.info/trunx) | Super Saiyan React components, son of awesome Bulma, implemented in TypeScript |
|
|
||||||
| [@aybolit/bulma](https://github.com/web-padawan/aybolit/tree/master/packages/bulma) | Web Components library inspired by Bulma and Bulma-extensions |
|
|
||||||
| [Drulma](https://www.drupal.org/project/drulma) | Drupal theme for Bulma. |
|
|
||||||
| [Bulrush](https://github.com/textbook/bulrush) | A Bulma-based Python Pelican blog theme |
|
|
||||||
| [Bulma Variable Export](https://github.com/service-paradis/bulma-variables-export) | Access Bulma Variables in Javascript/Typescript in project using Webpack |
|
|
||||||
| [Bulmil](https://github.com/gomah/bulmil) | An agnostic UI components library based on Web Components, made with Bulma & Stencil. |
|
|
||||||
| [Svelte Bulma Components](https://github.com/elcobvg/svelte-bulma-components) | Library of UI components to be used in [Svelte.js](https://svelte.technology/) or standalone. |
|
|
||||||
| [Bulma Nunjucks Starterkit](https://github.com/benninkcorien/nunjucks-starter-kit) | Starterkit for Nunjucks with Bulma. |
|
|
||||||
| [Bulma-Social](https://github.com/aldi/bulma-social) | Social Buttons and Colors for Bulma |
|
|
||||||
| [Divjoy](https://divjoy.com/?kit=bulma) | React codebase generator with Bulma templates |
|
|
||||||
| [Blazorise](https://github.com/Megabit/Blazorise) | Blazor component library with the support for Bulma CSS framework |
|
|
||||||
| [Oruga-Bulma](https://github.com/oruga-ui/theme-bulma) | Bulma theme for [Oruga UI](https://oruga.io) |
|
|
||||||
| [@bulvar/bulma](https://github.com/daniil4udo/bulvar/tree/master/packages/bulma) | Bulma with [CSS Variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties) support |
|
|
||||||
| [@angular-bulma](https://quinnjr.github.io/angular-bulma) | [Angular](https://angular.io/) directives and components to use in your Bulma projects |
|
|
||||||
|
|
||||||
## Copyright and license ![Github](https://img.shields.io/github/license/jgthms/bulma?logo=Github)
|
|
||||||
|
|
||||||
Code copyright 2022 Jeremy Thomas. Code released under [the MIT license](https://github.com/jgthms/bulma/blob/master/LICENSE).
|
|
||||||
|
|
||||||
[npm-link]: https://www.npmjs.com/package/bulma
|
|
||||||
[awesome-link]: https://github.com/awesome-css-group/awesome-css
|
|
||||||
[awesome-badge]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg
|
|
10
hackens_orga/shared/static/scss/bulma/bulma.sass
vendored
10
hackens_orga/shared/static/scss/bulma/bulma.sass
vendored
|
@ -1,10 +0,0 @@
|
||||||
@charset "utf-8"
|
|
||||||
/*! bulma.io v0.9.4 | MIT License | github.com/jgthms/bulma */
|
|
||||||
@import "sass/utilities/_all"
|
|
||||||
@import "sass/base/_all"
|
|
||||||
@import "sass/elements/_all"
|
|
||||||
@import "sass/form/_all"
|
|
||||||
@import "sass/components/_all"
|
|
||||||
@import "sass/grid/_all"
|
|
||||||
@import "sass/helpers/_all"
|
|
||||||
@import "sass/layout/_all"
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
11851
hackens_orga/shared/static/scss/bulma/css/bulma.css
vendored
11851
hackens_orga/shared/static/scss/bulma/css/bulma.css
vendored
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,56 +0,0 @@
|
||||||
{
|
|
||||||
"name": "bulma",
|
|
||||||
"version": "0.9.4",
|
|
||||||
"homepage": "https://bulma.io",
|
|
||||||
"author": {
|
|
||||||
"name": "Jeremy Thomas",
|
|
||||||
"email": "bbxdesign@gmail.com",
|
|
||||||
"url": "https://jgthms.com"
|
|
||||||
},
|
|
||||||
"description": "Modern CSS framework based on Flexbox",
|
|
||||||
"main": "bulma.sass",
|
|
||||||
"unpkg": "css/bulma.css",
|
|
||||||
"style": "bulma/css/bulma.min.css",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/jgthms/bulma.git"
|
|
||||||
},
|
|
||||||
"license": "MIT",
|
|
||||||
"keywords": [
|
|
||||||
"css",
|
|
||||||
"sass",
|
|
||||||
"flexbox",
|
|
||||||
"responsive",
|
|
||||||
"framework"
|
|
||||||
],
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/jgthms/bulma/issues"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"autoprefixer": "^10.4.7",
|
|
||||||
"clean-css-cli": "^5.6.0",
|
|
||||||
"node-sass": "^7.0.1",
|
|
||||||
"postcss-cli": "^9.1.0",
|
|
||||||
"rimraf": "^3.0.2"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "npm run build-sass && npm run build-autoprefix && npm run build-cleancss",
|
|
||||||
"build-autoprefix": "postcss --use autoprefixer --map false --output css/bulma.css css/bulma.css",
|
|
||||||
"build-cleancss": "cleancss -o css/bulma.min.css css/bulma.css",
|
|
||||||
"build-sass": "node-sass --output-style expanded --source-map true bulma.sass css/bulma.css",
|
|
||||||
"clean": "rimraf css",
|
|
||||||
"rtl": "npm run rtl-sass && npm run rtl-autoprefix && npm run rtl-cleancss",
|
|
||||||
"rtl-sass": "node-sass --output-style expanded --source-map true bulma-rtl.sass css/bulma-rtl.css",
|
|
||||||
"rtl-autoprefix": "postcss --use autoprefixer --map false --output css/bulma-rtl.css css/bulma-rtl.css",
|
|
||||||
"rtl-cleancss": "cleancss -o css/bulma-rtl.min.css css/bulma-rtl.css",
|
|
||||||
"deploy": "npm run clean && npm run build && npm run rtl",
|
|
||||||
"start": "npm run build-sass -- --watch"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"css",
|
|
||||||
"sass",
|
|
||||||
"bulma.sass",
|
|
||||||
"LICENSE",
|
|
||||||
"README.md"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
/* Bulma Base */
|
|
||||||
@charset "utf-8"
|
|
||||||
|
|
||||||
@import "minireset"
|
|
||||||
@import "generic"
|
|
||||||
@import "animations"
|
|
|
@ -1,5 +0,0 @@
|
||||||
@keyframes spinAround
|
|
||||||
from
|
|
||||||
transform: rotate(0deg)
|
|
||||||
to
|
|
||||||
transform: rotate(359deg)
|
|
|
@ -1,145 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$body-background-color: $scheme-main !default
|
|
||||||
$body-size: 16px !default
|
|
||||||
$body-min-width: 300px !default
|
|
||||||
$body-rendering: optimizeLegibility !default
|
|
||||||
$body-family: $family-primary !default
|
|
||||||
$body-overflow-x: hidden !default
|
|
||||||
$body-overflow-y: scroll !default
|
|
||||||
|
|
||||||
$body-color: $text !default
|
|
||||||
$body-font-size: 1em !default
|
|
||||||
$body-weight: $weight-normal !default
|
|
||||||
$body-line-height: 1.5 !default
|
|
||||||
|
|
||||||
$code-family: $family-code !default
|
|
||||||
$code-padding: 0.25em 0.5em 0.25em !default
|
|
||||||
$code-weight: normal !default
|
|
||||||
$code-size: 0.875em !default
|
|
||||||
|
|
||||||
$small-font-size: 0.875em !default
|
|
||||||
|
|
||||||
$hr-background-color: $background !default
|
|
||||||
$hr-height: 2px !default
|
|
||||||
$hr-margin: 1.5rem 0 !default
|
|
||||||
|
|
||||||
$strong-color: $text-strong !default
|
|
||||||
$strong-weight: $weight-bold !default
|
|
||||||
|
|
||||||
$pre-font-size: 0.875em !default
|
|
||||||
$pre-padding: 1.25rem 1.5rem !default
|
|
||||||
$pre-code-font-size: 1em !default
|
|
||||||
|
|
||||||
html
|
|
||||||
background-color: $body-background-color
|
|
||||||
font-size: $body-size
|
|
||||||
-moz-osx-font-smoothing: grayscale
|
|
||||||
-webkit-font-smoothing: antialiased
|
|
||||||
min-width: $body-min-width
|
|
||||||
overflow-x: $body-overflow-x
|
|
||||||
overflow-y: $body-overflow-y
|
|
||||||
text-rendering: $body-rendering
|
|
||||||
text-size-adjust: 100%
|
|
||||||
|
|
||||||
article,
|
|
||||||
aside,
|
|
||||||
figure,
|
|
||||||
footer,
|
|
||||||
header,
|
|
||||||
hgroup,
|
|
||||||
section
|
|
||||||
display: block
|
|
||||||
|
|
||||||
body,
|
|
||||||
button,
|
|
||||||
input,
|
|
||||||
optgroup,
|
|
||||||
select,
|
|
||||||
textarea
|
|
||||||
font-family: $body-family
|
|
||||||
|
|
||||||
code,
|
|
||||||
pre
|
|
||||||
-moz-osx-font-smoothing: auto
|
|
||||||
-webkit-font-smoothing: auto
|
|
||||||
font-family: $code-family
|
|
||||||
|
|
||||||
body
|
|
||||||
color: $body-color
|
|
||||||
font-size: $body-font-size
|
|
||||||
font-weight: $body-weight
|
|
||||||
line-height: $body-line-height
|
|
||||||
|
|
||||||
// Inline
|
|
||||||
|
|
||||||
a
|
|
||||||
color: $link
|
|
||||||
cursor: pointer
|
|
||||||
text-decoration: none
|
|
||||||
strong
|
|
||||||
color: currentColor
|
|
||||||
&:hover
|
|
||||||
color: $link-hover
|
|
||||||
|
|
||||||
code
|
|
||||||
background-color: $code-background
|
|
||||||
color: $code
|
|
||||||
font-size: $code-size
|
|
||||||
font-weight: $code-weight
|
|
||||||
padding: $code-padding
|
|
||||||
|
|
||||||
hr
|
|
||||||
background-color: $hr-background-color
|
|
||||||
border: none
|
|
||||||
display: block
|
|
||||||
height: $hr-height
|
|
||||||
margin: $hr-margin
|
|
||||||
|
|
||||||
img
|
|
||||||
height: auto
|
|
||||||
max-width: 100%
|
|
||||||
|
|
||||||
input[type="checkbox"],
|
|
||||||
input[type="radio"]
|
|
||||||
vertical-align: baseline
|
|
||||||
|
|
||||||
small
|
|
||||||
font-size: $small-font-size
|
|
||||||
|
|
||||||
span
|
|
||||||
font-style: inherit
|
|
||||||
font-weight: inherit
|
|
||||||
|
|
||||||
strong
|
|
||||||
color: $strong-color
|
|
||||||
font-weight: $strong-weight
|
|
||||||
|
|
||||||
// Block
|
|
||||||
|
|
||||||
fieldset
|
|
||||||
border: none
|
|
||||||
|
|
||||||
pre
|
|
||||||
+overflow-touch
|
|
||||||
background-color: $pre-background
|
|
||||||
color: $pre
|
|
||||||
font-size: $pre-font-size
|
|
||||||
overflow-x: auto
|
|
||||||
padding: $pre-padding
|
|
||||||
white-space: pre
|
|
||||||
word-wrap: normal
|
|
||||||
code
|
|
||||||
background-color: transparent
|
|
||||||
color: currentColor
|
|
||||||
font-size: $pre-code-font-size
|
|
||||||
padding: 0
|
|
||||||
|
|
||||||
table
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
vertical-align: top
|
|
||||||
&:not([align])
|
|
||||||
text-align: inherit
|
|
||||||
th
|
|
||||||
color: $text-strong
|
|
|
@ -1 +0,0 @@
|
||||||
@warn "The helpers.sass file is DEPRECATED. It has moved into its own /helpers folder. Please import sass/helpers/_all instead."
|
|
|
@ -1,79 +0,0 @@
|
||||||
/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */
|
|
||||||
// Blocks
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
p,
|
|
||||||
ol,
|
|
||||||
ul,
|
|
||||||
li,
|
|
||||||
dl,
|
|
||||||
dt,
|
|
||||||
dd,
|
|
||||||
blockquote,
|
|
||||||
figure,
|
|
||||||
fieldset,
|
|
||||||
legend,
|
|
||||||
textarea,
|
|
||||||
pre,
|
|
||||||
iframe,
|
|
||||||
hr,
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6
|
|
||||||
margin: 0
|
|
||||||
padding: 0
|
|
||||||
|
|
||||||
// Headings
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6
|
|
||||||
font-size: 100%
|
|
||||||
font-weight: normal
|
|
||||||
|
|
||||||
// List
|
|
||||||
ul
|
|
||||||
list-style: none
|
|
||||||
|
|
||||||
// Form
|
|
||||||
button,
|
|
||||||
input,
|
|
||||||
select,
|
|
||||||
textarea
|
|
||||||
margin: 0
|
|
||||||
|
|
||||||
// Box sizing
|
|
||||||
html
|
|
||||||
box-sizing: border-box
|
|
||||||
|
|
||||||
*
|
|
||||||
&,
|
|
||||||
&::before,
|
|
||||||
&::after
|
|
||||||
box-sizing: inherit
|
|
||||||
|
|
||||||
// Media
|
|
||||||
img,
|
|
||||||
video
|
|
||||||
height: auto
|
|
||||||
max-width: 100%
|
|
||||||
|
|
||||||
// Iframe
|
|
||||||
iframe
|
|
||||||
border: 0
|
|
||||||
|
|
||||||
// Table
|
|
||||||
table
|
|
||||||
border-collapse: collapse
|
|
||||||
border-spacing: 0
|
|
||||||
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
padding: 0
|
|
||||||
&:not([align])
|
|
||||||
text-align: inherit
|
|
|
@ -1,15 +0,0 @@
|
||||||
/* Bulma Components */
|
|
||||||
@charset "utf-8"
|
|
||||||
|
|
||||||
@import "breadcrumb"
|
|
||||||
@import "card"
|
|
||||||
@import "dropdown"
|
|
||||||
@import "level"
|
|
||||||
@import "media"
|
|
||||||
@import "menu"
|
|
||||||
@import "message"
|
|
||||||
@import "modal"
|
|
||||||
@import "navbar"
|
|
||||||
@import "pagination"
|
|
||||||
@import "panel"
|
|
||||||
@import "tabs"
|
|
|
@ -1,77 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$breadcrumb-item-color: $link !default
|
|
||||||
$breadcrumb-item-hover-color: $link-hover !default
|
|
||||||
$breadcrumb-item-active-color: $text-strong !default
|
|
||||||
|
|
||||||
$breadcrumb-item-padding-vertical: 0 !default
|
|
||||||
$breadcrumb-item-padding-horizontal: 0.75em !default
|
|
||||||
|
|
||||||
$breadcrumb-item-separator-color: $border-hover !default
|
|
||||||
|
|
||||||
.breadcrumb
|
|
||||||
@extend %block
|
|
||||||
@extend %unselectable
|
|
||||||
font-size: $size-normal
|
|
||||||
white-space: nowrap
|
|
||||||
a
|
|
||||||
align-items: center
|
|
||||||
color: $breadcrumb-item-color
|
|
||||||
display: flex
|
|
||||||
justify-content: center
|
|
||||||
padding: $breadcrumb-item-padding-vertical $breadcrumb-item-padding-horizontal
|
|
||||||
&:hover
|
|
||||||
color: $breadcrumb-item-hover-color
|
|
||||||
li
|
|
||||||
align-items: center
|
|
||||||
display: flex
|
|
||||||
&:first-child a
|
|
||||||
+ltr-property("padding", 0, false)
|
|
||||||
&.is-active
|
|
||||||
a
|
|
||||||
color: $breadcrumb-item-active-color
|
|
||||||
cursor: default
|
|
||||||
pointer-events: none
|
|
||||||
& + li::before
|
|
||||||
color: $breadcrumb-item-separator-color
|
|
||||||
content: "\0002f"
|
|
||||||
ul,
|
|
||||||
ol
|
|
||||||
align-items: flex-start
|
|
||||||
display: flex
|
|
||||||
flex-wrap: wrap
|
|
||||||
justify-content: flex-start
|
|
||||||
.icon
|
|
||||||
&:first-child
|
|
||||||
+ltr-property("margin", 0.5em)
|
|
||||||
&:last-child
|
|
||||||
+ltr-property("margin", 0.5em, false)
|
|
||||||
// Alignment
|
|
||||||
&.is-centered
|
|
||||||
ol,
|
|
||||||
ul
|
|
||||||
justify-content: center
|
|
||||||
&.is-right
|
|
||||||
ol,
|
|
||||||
ul
|
|
||||||
justify-content: flex-end
|
|
||||||
// Sizes
|
|
||||||
&.is-small
|
|
||||||
font-size: $size-small
|
|
||||||
&.is-medium
|
|
||||||
font-size: $size-medium
|
|
||||||
&.is-large
|
|
||||||
font-size: $size-large
|
|
||||||
// Styles
|
|
||||||
&.has-arrow-separator
|
|
||||||
li + li::before
|
|
||||||
content: "\02192"
|
|
||||||
&.has-bullet-separator
|
|
||||||
li + li::before
|
|
||||||
content: "\02022"
|
|
||||||
&.has-dot-separator
|
|
||||||
li + li::before
|
|
||||||
content: "\000b7"
|
|
||||||
&.has-succeeds-separator
|
|
||||||
li + li::before
|
|
||||||
content: "\0227B"
|
|
|
@ -1,103 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$card-color: $text !default
|
|
||||||
$card-background-color: $scheme-main !default
|
|
||||||
$card-shadow: $shadow !default
|
|
||||||
$card-radius: 0.25rem !default
|
|
||||||
|
|
||||||
$card-header-background-color: transparent !default
|
|
||||||
$card-header-color: $text-strong !default
|
|
||||||
$card-header-padding: 0.75rem 1rem !default
|
|
||||||
$card-header-shadow: 0 0.125em 0.25em rgba($scheme-invert, 0.1) !default
|
|
||||||
$card-header-weight: $weight-bold !default
|
|
||||||
|
|
||||||
$card-content-background-color: transparent !default
|
|
||||||
$card-content-padding: 1.5rem !default
|
|
||||||
|
|
||||||
$card-footer-background-color: transparent !default
|
|
||||||
$card-footer-border-top: 1px solid $border-light !default
|
|
||||||
$card-footer-padding: 0.75rem !default
|
|
||||||
|
|
||||||
$card-media-margin: $block-spacing !default
|
|
||||||
|
|
||||||
.card
|
|
||||||
background-color: $card-background-color
|
|
||||||
border-radius: $card-radius
|
|
||||||
box-shadow: $card-shadow
|
|
||||||
color: $card-color
|
|
||||||
max-width: 100%
|
|
||||||
position: relative
|
|
||||||
|
|
||||||
%card-item
|
|
||||||
&:first-child
|
|
||||||
border-top-left-radius: $card-radius
|
|
||||||
border-top-right-radius: $card-radius
|
|
||||||
&:last-child
|
|
||||||
border-bottom-left-radius: $card-radius
|
|
||||||
border-bottom-right-radius: $card-radius
|
|
||||||
|
|
||||||
.card-header
|
|
||||||
@extend %card-item
|
|
||||||
background-color: $card-header-background-color
|
|
||||||
align-items: stretch
|
|
||||||
box-shadow: $card-header-shadow
|
|
||||||
display: flex
|
|
||||||
|
|
||||||
.card-header-title
|
|
||||||
align-items: center
|
|
||||||
color: $card-header-color
|
|
||||||
display: flex
|
|
||||||
flex-grow: 1
|
|
||||||
font-weight: $card-header-weight
|
|
||||||
padding: $card-header-padding
|
|
||||||
&.is-centered
|
|
||||||
justify-content: center
|
|
||||||
|
|
||||||
.card-header-icon
|
|
||||||
+reset
|
|
||||||
align-items: center
|
|
||||||
cursor: pointer
|
|
||||||
display: flex
|
|
||||||
justify-content: center
|
|
||||||
padding: $card-header-padding
|
|
||||||
|
|
||||||
.card-image
|
|
||||||
display: block
|
|
||||||
position: relative
|
|
||||||
&:first-child
|
|
||||||
img
|
|
||||||
border-top-left-radius: $card-radius
|
|
||||||
border-top-right-radius: $card-radius
|
|
||||||
&:last-child
|
|
||||||
img
|
|
||||||
border-bottom-left-radius: $card-radius
|
|
||||||
border-bottom-right-radius: $card-radius
|
|
||||||
|
|
||||||
.card-content
|
|
||||||
@extend %card-item
|
|
||||||
background-color: $card-content-background-color
|
|
||||||
padding: $card-content-padding
|
|
||||||
|
|
||||||
.card-footer
|
|
||||||
@extend %card-item
|
|
||||||
background-color: $card-footer-background-color
|
|
||||||
border-top: $card-footer-border-top
|
|
||||||
align-items: stretch
|
|
||||||
display: flex
|
|
||||||
|
|
||||||
.card-footer-item
|
|
||||||
align-items: center
|
|
||||||
display: flex
|
|
||||||
flex-basis: 0
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 0
|
|
||||||
justify-content: center
|
|
||||||
padding: $card-footer-padding
|
|
||||||
&:not(:last-child)
|
|
||||||
+ltr-property("border", $card-footer-border-top)
|
|
||||||
|
|
||||||
// Combinations
|
|
||||||
|
|
||||||
.card
|
|
||||||
.media:not(:last-child)
|
|
||||||
margin-bottom: $card-media-margin
|
|
|
@ -1,83 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$dropdown-menu-min-width: 12rem !default
|
|
||||||
|
|
||||||
$dropdown-content-background-color: $scheme-main !default
|
|
||||||
$dropdown-content-arrow: $link !default
|
|
||||||
$dropdown-content-offset: 4px !default
|
|
||||||
$dropdown-content-padding-bottom: 0.5rem !default
|
|
||||||
$dropdown-content-padding-top: 0.5rem !default
|
|
||||||
$dropdown-content-radius: $radius !default
|
|
||||||
$dropdown-content-shadow: $shadow !default
|
|
||||||
$dropdown-content-z: 20 !default
|
|
||||||
|
|
||||||
$dropdown-item-color: $text !default
|
|
||||||
$dropdown-item-hover-color: $scheme-invert !default
|
|
||||||
$dropdown-item-hover-background-color: $background !default
|
|
||||||
$dropdown-item-active-color: $link-invert !default
|
|
||||||
$dropdown-item-active-background-color: $link !default
|
|
||||||
|
|
||||||
$dropdown-divider-background-color: $border-light !default
|
|
||||||
|
|
||||||
.dropdown
|
|
||||||
display: inline-flex
|
|
||||||
position: relative
|
|
||||||
vertical-align: top
|
|
||||||
&.is-active,
|
|
||||||
&.is-hoverable:hover
|
|
||||||
.dropdown-menu
|
|
||||||
display: block
|
|
||||||
&.is-right
|
|
||||||
.dropdown-menu
|
|
||||||
left: auto
|
|
||||||
right: 0
|
|
||||||
&.is-up
|
|
||||||
.dropdown-menu
|
|
||||||
bottom: 100%
|
|
||||||
padding-bottom: $dropdown-content-offset
|
|
||||||
padding-top: initial
|
|
||||||
top: auto
|
|
||||||
|
|
||||||
.dropdown-menu
|
|
||||||
display: none
|
|
||||||
+ltr-position(0, false)
|
|
||||||
min-width: $dropdown-menu-min-width
|
|
||||||
padding-top: $dropdown-content-offset
|
|
||||||
position: absolute
|
|
||||||
top: 100%
|
|
||||||
z-index: $dropdown-content-z
|
|
||||||
|
|
||||||
.dropdown-content
|
|
||||||
background-color: $dropdown-content-background-color
|
|
||||||
border-radius: $dropdown-content-radius
|
|
||||||
box-shadow: $dropdown-content-shadow
|
|
||||||
padding-bottom: $dropdown-content-padding-bottom
|
|
||||||
padding-top: $dropdown-content-padding-top
|
|
||||||
|
|
||||||
.dropdown-item
|
|
||||||
color: $dropdown-item-color
|
|
||||||
display: block
|
|
||||||
font-size: 0.875rem
|
|
||||||
line-height: 1.5
|
|
||||||
padding: 0.375rem 1rem
|
|
||||||
position: relative
|
|
||||||
|
|
||||||
a.dropdown-item,
|
|
||||||
button.dropdown-item
|
|
||||||
+ltr-property("padding", 3rem)
|
|
||||||
text-align: inherit
|
|
||||||
white-space: nowrap
|
|
||||||
width: 100%
|
|
||||||
&:hover
|
|
||||||
background-color: $dropdown-item-hover-background-color
|
|
||||||
color: $dropdown-item-hover-color
|
|
||||||
&.is-active
|
|
||||||
background-color: $dropdown-item-active-background-color
|
|
||||||
color: $dropdown-item-active-color
|
|
||||||
|
|
||||||
.dropdown-divider
|
|
||||||
background-color: $dropdown-divider-background-color
|
|
||||||
border: none
|
|
||||||
display: block
|
|
||||||
height: 1px
|
|
||||||
margin: 0.5rem 0
|
|
|
@ -1,79 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$level-item-spacing: ($block-spacing * 0.5) !default
|
|
||||||
|
|
||||||
.level
|
|
||||||
@extend %block
|
|
||||||
align-items: center
|
|
||||||
justify-content: space-between
|
|
||||||
code
|
|
||||||
border-radius: $radius
|
|
||||||
img
|
|
||||||
display: inline-block
|
|
||||||
vertical-align: top
|
|
||||||
// Modifiers
|
|
||||||
&.is-mobile
|
|
||||||
display: flex
|
|
||||||
.level-left,
|
|
||||||
.level-right
|
|
||||||
display: flex
|
|
||||||
.level-left + .level-right
|
|
||||||
margin-top: 0
|
|
||||||
.level-item
|
|
||||||
&:not(:last-child)
|
|
||||||
margin-bottom: 0
|
|
||||||
+ltr-property("margin", $level-item-spacing)
|
|
||||||
&:not(.is-narrow)
|
|
||||||
flex-grow: 1
|
|
||||||
// Responsiveness
|
|
||||||
+tablet
|
|
||||||
display: flex
|
|
||||||
& > .level-item
|
|
||||||
&:not(.is-narrow)
|
|
||||||
flex-grow: 1
|
|
||||||
|
|
||||||
.level-item
|
|
||||||
align-items: center
|
|
||||||
display: flex
|
|
||||||
flex-basis: auto
|
|
||||||
flex-grow: 0
|
|
||||||
flex-shrink: 0
|
|
||||||
justify-content: center
|
|
||||||
.title,
|
|
||||||
.subtitle
|
|
||||||
margin-bottom: 0
|
|
||||||
// Responsiveness
|
|
||||||
+mobile
|
|
||||||
&:not(:last-child)
|
|
||||||
margin-bottom: $level-item-spacing
|
|
||||||
|
|
||||||
.level-left,
|
|
||||||
.level-right
|
|
||||||
flex-basis: auto
|
|
||||||
flex-grow: 0
|
|
||||||
flex-shrink: 0
|
|
||||||
.level-item
|
|
||||||
// Modifiers
|
|
||||||
&.is-flexible
|
|
||||||
flex-grow: 1
|
|
||||||
// Responsiveness
|
|
||||||
+tablet
|
|
||||||
&:not(:last-child)
|
|
||||||
+ltr-property("margin", $level-item-spacing)
|
|
||||||
|
|
||||||
.level-left
|
|
||||||
align-items: center
|
|
||||||
justify-content: flex-start
|
|
||||||
// Responsiveness
|
|
||||||
+mobile
|
|
||||||
& + .level-right
|
|
||||||
margin-top: 1.5rem
|
|
||||||
+tablet
|
|
||||||
display: flex
|
|
||||||
|
|
||||||
.level-right
|
|
||||||
align-items: center
|
|
||||||
justify-content: flex-end
|
|
||||||
// Responsiveness
|
|
||||||
+tablet
|
|
||||||
display: flex
|
|
|
@ -1,59 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$media-border-color: bulmaRgba($border, 0.5) !default
|
|
||||||
$media-border-size: 1px !default
|
|
||||||
$media-spacing: 1rem !default
|
|
||||||
$media-spacing-large: 1.5rem !default
|
|
||||||
$media-content-spacing: 0.75rem !default
|
|
||||||
$media-level-1-spacing: 0.75rem !default
|
|
||||||
$media-level-1-content-spacing: 0.5rem !default
|
|
||||||
$media-level-2-spacing: 0.5rem !default
|
|
||||||
|
|
||||||
.media
|
|
||||||
align-items: flex-start
|
|
||||||
display: flex
|
|
||||||
text-align: inherit
|
|
||||||
.content:not(:last-child)
|
|
||||||
margin-bottom: $media-content-spacing
|
|
||||||
.media
|
|
||||||
border-top: $media-border-size solid $media-border-color
|
|
||||||
display: flex
|
|
||||||
padding-top: $media-level-1-spacing
|
|
||||||
.content:not(:last-child),
|
|
||||||
.control:not(:last-child)
|
|
||||||
margin-bottom: $media-level-1-content-spacing
|
|
||||||
.media
|
|
||||||
padding-top: $media-level-2-spacing
|
|
||||||
& + .media
|
|
||||||
margin-top: $media-level-2-spacing
|
|
||||||
& + .media
|
|
||||||
border-top: $media-border-size solid $media-border-color
|
|
||||||
margin-top: $media-spacing
|
|
||||||
padding-top: $media-spacing
|
|
||||||
// Sizes
|
|
||||||
&.is-large
|
|
||||||
& + .media
|
|
||||||
margin-top: $media-spacing-large
|
|
||||||
padding-top: $media-spacing-large
|
|
||||||
|
|
||||||
.media-left,
|
|
||||||
.media-right
|
|
||||||
flex-basis: auto
|
|
||||||
flex-grow: 0
|
|
||||||
flex-shrink: 0
|
|
||||||
|
|
||||||
.media-left
|
|
||||||
+ltr-property("margin", $media-spacing)
|
|
||||||
|
|
||||||
.media-right
|
|
||||||
+ltr-property("margin", $media-spacing, false)
|
|
||||||
|
|
||||||
.media-content
|
|
||||||
flex-basis: auto
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 1
|
|
||||||
text-align: inherit
|
|
||||||
|
|
||||||
+mobile
|
|
||||||
.media-content
|
|
||||||
overflow-x: auto
|
|
|
@ -1,59 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$menu-item-color: $text !default
|
|
||||||
$menu-item-radius: $radius-small !default
|
|
||||||
$menu-item-hover-color: $text-strong !default
|
|
||||||
$menu-item-hover-background-color: $background !default
|
|
||||||
$menu-item-active-color: $link-invert !default
|
|
||||||
$menu-item-active-background-color: $link !default
|
|
||||||
|
|
||||||
$menu-list-border-left: 1px solid $border !default
|
|
||||||
$menu-list-line-height: 1.25 !default
|
|
||||||
$menu-list-link-padding: 0.5em 0.75em !default
|
|
||||||
$menu-nested-list-margin: 0.75em !default
|
|
||||||
$menu-nested-list-padding-left: 0.75em !default
|
|
||||||
|
|
||||||
$menu-label-color: $text-light !default
|
|
||||||
$menu-label-font-size: 0.75em !default
|
|
||||||
$menu-label-letter-spacing: 0.1em !default
|
|
||||||
$menu-label-spacing: 1em !default
|
|
||||||
|
|
||||||
.menu
|
|
||||||
font-size: $size-normal
|
|
||||||
// Sizes
|
|
||||||
&.is-small
|
|
||||||
font-size: $size-small
|
|
||||||
&.is-medium
|
|
||||||
font-size: $size-medium
|
|
||||||
&.is-large
|
|
||||||
font-size: $size-large
|
|
||||||
|
|
||||||
.menu-list
|
|
||||||
line-height: $menu-list-line-height
|
|
||||||
a
|
|
||||||
border-radius: $menu-item-radius
|
|
||||||
color: $menu-item-color
|
|
||||||
display: block
|
|
||||||
padding: $menu-list-link-padding
|
|
||||||
&:hover
|
|
||||||
background-color: $menu-item-hover-background-color
|
|
||||||
color: $menu-item-hover-color
|
|
||||||
// Modifiers
|
|
||||||
&.is-active
|
|
||||||
background-color: $menu-item-active-background-color
|
|
||||||
color: $menu-item-active-color
|
|
||||||
li
|
|
||||||
ul
|
|
||||||
+ltr-property("border", $menu-list-border-left, false)
|
|
||||||
margin: $menu-nested-list-margin
|
|
||||||
+ltr-property("padding", $menu-nested-list-padding-left, false)
|
|
||||||
|
|
||||||
.menu-label
|
|
||||||
color: $menu-label-color
|
|
||||||
font-size: $menu-label-font-size
|
|
||||||
letter-spacing: $menu-label-letter-spacing
|
|
||||||
text-transform: uppercase
|
|
||||||
&:not(:first-child)
|
|
||||||
margin-top: $menu-label-spacing
|
|
||||||
&:not(:last-child)
|
|
||||||
margin-bottom: $menu-label-spacing
|
|
|
@ -1,101 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$message-background-color: $background !default
|
|
||||||
$message-radius: $radius !default
|
|
||||||
|
|
||||||
$message-header-background-color: $text !default
|
|
||||||
$message-header-color: $text-invert !default
|
|
||||||
$message-header-weight: $weight-bold !default
|
|
||||||
$message-header-padding: 0.75em 1em !default
|
|
||||||
$message-header-radius: $radius !default
|
|
||||||
|
|
||||||
$message-body-border-color: $border !default
|
|
||||||
$message-body-border-width: 0 0 0 4px !default
|
|
||||||
$message-body-color: $text !default
|
|
||||||
$message-body-padding: 1.25em 1.5em !default
|
|
||||||
$message-body-radius: $radius !default
|
|
||||||
|
|
||||||
$message-body-pre-background-color: $scheme-main !default
|
|
||||||
$message-body-pre-code-background-color: transparent !default
|
|
||||||
|
|
||||||
$message-header-body-border-width: 0 !default
|
|
||||||
$message-colors: $colors !default
|
|
||||||
|
|
||||||
.message
|
|
||||||
@extend %block
|
|
||||||
background-color: $message-background-color
|
|
||||||
border-radius: $message-radius
|
|
||||||
font-size: $size-normal
|
|
||||||
strong
|
|
||||||
color: currentColor
|
|
||||||
a:not(.button):not(.tag):not(.dropdown-item)
|
|
||||||
color: currentColor
|
|
||||||
text-decoration: underline
|
|
||||||
// Sizes
|
|
||||||
&.is-small
|
|
||||||
font-size: $size-small
|
|
||||||
&.is-medium
|
|
||||||
font-size: $size-medium
|
|
||||||
&.is-large
|
|
||||||
font-size: $size-large
|
|
||||||
// Colors
|
|
||||||
@each $name, $components in $message-colors
|
|
||||||
$color: nth($components, 1)
|
|
||||||
$color-invert: nth($components, 2)
|
|
||||||
$color-light: null
|
|
||||||
$color-dark: null
|
|
||||||
|
|
||||||
@if length($components) >= 3
|
|
||||||
$color-light: nth($components, 3)
|
|
||||||
@if length($components) >= 4
|
|
||||||
$color-dark: nth($components, 4)
|
|
||||||
@else
|
|
||||||
$color-luminance: colorLuminance($color)
|
|
||||||
$darken-percentage: $color-luminance * 70%
|
|
||||||
$desaturate-percentage: $color-luminance * 30%
|
|
||||||
$color-dark: desaturate(darken($color, $darken-percentage), $desaturate-percentage)
|
|
||||||
@else
|
|
||||||
$color-lightning: max((100% - lightness($color)) - 2%, 0%)
|
|
||||||
$color-light: lighten($color, $color-lightning)
|
|
||||||
|
|
||||||
&.is-#{$name}
|
|
||||||
background-color: $color-light
|
|
||||||
.message-header
|
|
||||||
background-color: $color
|
|
||||||
color: $color-invert
|
|
||||||
.message-body
|
|
||||||
border-color: $color
|
|
||||||
color: $color-dark
|
|
||||||
|
|
||||||
.message-header
|
|
||||||
align-items: center
|
|
||||||
background-color: $message-header-background-color
|
|
||||||
border-radius: $message-header-radius $message-header-radius 0 0
|
|
||||||
color: $message-header-color
|
|
||||||
display: flex
|
|
||||||
font-weight: $message-header-weight
|
|
||||||
justify-content: space-between
|
|
||||||
line-height: 1.25
|
|
||||||
padding: $message-header-padding
|
|
||||||
position: relative
|
|
||||||
.delete
|
|
||||||
flex-grow: 0
|
|
||||||
flex-shrink: 0
|
|
||||||
+ltr-property("margin", 0.75em, false)
|
|
||||||
& + .message-body
|
|
||||||
border-width: $message-header-body-border-width
|
|
||||||
border-top-left-radius: 0
|
|
||||||
border-top-right-radius: 0
|
|
||||||
|
|
||||||
.message-body
|
|
||||||
border-color: $message-body-border-color
|
|
||||||
border-radius: $message-body-radius
|
|
||||||
border-style: solid
|
|
||||||
border-width: $message-body-border-width
|
|
||||||
color: $message-body-color
|
|
||||||
padding: $message-body-padding
|
|
||||||
code,
|
|
||||||
pre
|
|
||||||
background-color: $message-body-pre-background-color
|
|
||||||
pre code
|
|
||||||
background-color: $message-body-pre-code-background-color
|
|
|
@ -1,117 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$modal-z: 40 !default
|
|
||||||
|
|
||||||
$modal-background-background-color: bulmaRgba($scheme-invert, 0.86) !default
|
|
||||||
|
|
||||||
$modal-content-width: 640px !default
|
|
||||||
$modal-content-margin-mobile: 20px !default
|
|
||||||
$modal-content-spacing-mobile: 160px !default
|
|
||||||
$modal-content-spacing-tablet: 40px !default
|
|
||||||
|
|
||||||
$modal-close-dimensions: 40px !default
|
|
||||||
$modal-close-right: 20px !default
|
|
||||||
$modal-close-top: 20px !default
|
|
||||||
|
|
||||||
$modal-card-spacing: 40px !default
|
|
||||||
|
|
||||||
$modal-card-head-background-color: $background !default
|
|
||||||
$modal-card-head-border-bottom: 1px solid $border !default
|
|
||||||
$modal-card-head-padding: 20px !default
|
|
||||||
$modal-card-head-radius: $radius-large !default
|
|
||||||
|
|
||||||
$modal-card-title-color: $text-strong !default
|
|
||||||
$modal-card-title-line-height: 1 !default
|
|
||||||
$modal-card-title-size: $size-4 !default
|
|
||||||
|
|
||||||
$modal-card-foot-radius: $radius-large !default
|
|
||||||
$modal-card-foot-border-top: 1px solid $border !default
|
|
||||||
|
|
||||||
$modal-card-body-background-color: $scheme-main !default
|
|
||||||
$modal-card-body-padding: 20px !default
|
|
||||||
|
|
||||||
$modal-breakpoint: $tablet !default
|
|
||||||
|
|
||||||
.modal
|
|
||||||
@extend %overlay
|
|
||||||
align-items: center
|
|
||||||
display: none
|
|
||||||
flex-direction: column
|
|
||||||
justify-content: center
|
|
||||||
overflow: hidden
|
|
||||||
position: fixed
|
|
||||||
z-index: $modal-z
|
|
||||||
// Modifiers
|
|
||||||
&.is-active
|
|
||||||
display: flex
|
|
||||||
|
|
||||||
.modal-background
|
|
||||||
@extend %overlay
|
|
||||||
background-color: $modal-background-background-color
|
|
||||||
|
|
||||||
.modal-content,
|
|
||||||
.modal-card
|
|
||||||
margin: 0 $modal-content-margin-mobile
|
|
||||||
max-height: calc(100vh - #{$modal-content-spacing-mobile})
|
|
||||||
overflow: auto
|
|
||||||
position: relative
|
|
||||||
width: 100%
|
|
||||||
// Responsiveness
|
|
||||||
+from($modal-breakpoint)
|
|
||||||
margin: 0 auto
|
|
||||||
max-height: calc(100vh - #{$modal-content-spacing-tablet})
|
|
||||||
width: $modal-content-width
|
|
||||||
|
|
||||||
.modal-close
|
|
||||||
@extend %delete
|
|
||||||
background: none
|
|
||||||
height: $modal-close-dimensions
|
|
||||||
position: fixed
|
|
||||||
+ltr-position($modal-close-right)
|
|
||||||
top: $modal-close-top
|
|
||||||
width: $modal-close-dimensions
|
|
||||||
|
|
||||||
.modal-card
|
|
||||||
display: flex
|
|
||||||
flex-direction: column
|
|
||||||
max-height: calc(100vh - #{$modal-card-spacing})
|
|
||||||
overflow: hidden
|
|
||||||
-ms-overflow-y: visible
|
|
||||||
|
|
||||||
.modal-card-head,
|
|
||||||
.modal-card-foot
|
|
||||||
align-items: center
|
|
||||||
background-color: $modal-card-head-background-color
|
|
||||||
display: flex
|
|
||||||
flex-shrink: 0
|
|
||||||
justify-content: flex-start
|
|
||||||
padding: $modal-card-head-padding
|
|
||||||
position: relative
|
|
||||||
|
|
||||||
.modal-card-head
|
|
||||||
border-bottom: $modal-card-head-border-bottom
|
|
||||||
border-top-left-radius: $modal-card-head-radius
|
|
||||||
border-top-right-radius: $modal-card-head-radius
|
|
||||||
|
|
||||||
.modal-card-title
|
|
||||||
color: $modal-card-title-color
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 0
|
|
||||||
font-size: $modal-card-title-size
|
|
||||||
line-height: $modal-card-title-line-height
|
|
||||||
|
|
||||||
.modal-card-foot
|
|
||||||
border-bottom-left-radius: $modal-card-foot-radius
|
|
||||||
border-bottom-right-radius: $modal-card-foot-radius
|
|
||||||
border-top: $modal-card-foot-border-top
|
|
||||||
.button
|
|
||||||
&:not(:last-child)
|
|
||||||
+ltr-property("margin", 0.5em)
|
|
||||||
|
|
||||||
.modal-card-body
|
|
||||||
+overflow-touch
|
|
||||||
background-color: $modal-card-body-background-color
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 1
|
|
||||||
overflow: auto
|
|
||||||
padding: $modal-card-body-padding
|
|
|
@ -1,446 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$navbar-background-color: $scheme-main !default
|
|
||||||
$navbar-box-shadow-size: 0 2px 0 0 !default
|
|
||||||
$navbar-box-shadow-color: $background !default
|
|
||||||
$navbar-height: 3.25rem !default
|
|
||||||
$navbar-padding-vertical: 1rem !default
|
|
||||||
$navbar-padding-horizontal: 2rem !default
|
|
||||||
$navbar-z: 30 !default
|
|
||||||
$navbar-fixed-z: 30 !default
|
|
||||||
|
|
||||||
$navbar-item-color: $text !default
|
|
||||||
$navbar-item-hover-color: $link !default
|
|
||||||
$navbar-item-hover-background-color: $scheme-main-bis !default
|
|
||||||
$navbar-item-active-color: $scheme-invert !default
|
|
||||||
$navbar-item-active-background-color: transparent !default
|
|
||||||
$navbar-item-img-max-height: 1.75rem !default
|
|
||||||
|
|
||||||
$navbar-burger-color: $navbar-item-color !default
|
|
||||||
|
|
||||||
$navbar-tab-hover-background-color: transparent !default
|
|
||||||
$navbar-tab-hover-border-bottom-color: $link !default
|
|
||||||
$navbar-tab-active-color: $link !default
|
|
||||||
$navbar-tab-active-background-color: transparent !default
|
|
||||||
$navbar-tab-active-border-bottom-color: $link !default
|
|
||||||
$navbar-tab-active-border-bottom-style: solid !default
|
|
||||||
$navbar-tab-active-border-bottom-width: 3px !default
|
|
||||||
|
|
||||||
$navbar-dropdown-background-color: $scheme-main !default
|
|
||||||
$navbar-dropdown-border-top: 2px solid $border !default
|
|
||||||
$navbar-dropdown-offset: -4px !default
|
|
||||||
$navbar-dropdown-arrow: $link !default
|
|
||||||
$navbar-dropdown-radius: $radius-large !default
|
|
||||||
$navbar-dropdown-z: 20 !default
|
|
||||||
|
|
||||||
$navbar-dropdown-boxed-radius: $radius-large !default
|
|
||||||
$navbar-dropdown-boxed-shadow: 0 8px 8px bulmaRgba($scheme-invert, 0.1), 0 0 0 1px bulmaRgba($scheme-invert, 0.1) !default
|
|
||||||
|
|
||||||
$navbar-dropdown-item-hover-color: $scheme-invert !default
|
|
||||||
$navbar-dropdown-item-hover-background-color: $background !default
|
|
||||||
$navbar-dropdown-item-active-color: $link !default
|
|
||||||
$navbar-dropdown-item-active-background-color: $background !default
|
|
||||||
|
|
||||||
$navbar-divider-background-color: $background !default
|
|
||||||
$navbar-divider-height: 2px !default
|
|
||||||
|
|
||||||
$navbar-bottom-box-shadow-size: 0 -2px 0 0 !default
|
|
||||||
|
|
||||||
$navbar-breakpoint: $desktop !default
|
|
||||||
|
|
||||||
$navbar-colors: $colors !default
|
|
||||||
|
|
||||||
=navbar-fixed
|
|
||||||
left: 0
|
|
||||||
position: fixed
|
|
||||||
right: 0
|
|
||||||
z-index: $navbar-fixed-z
|
|
||||||
|
|
||||||
.navbar
|
|
||||||
background-color: $navbar-background-color
|
|
||||||
min-height: $navbar-height
|
|
||||||
position: relative
|
|
||||||
z-index: $navbar-z
|
|
||||||
@each $name, $pair in $navbar-colors
|
|
||||||
$color: nth($pair, 1)
|
|
||||||
$color-invert: nth($pair, 2)
|
|
||||||
&.is-#{$name}
|
|
||||||
background-color: $color
|
|
||||||
color: $color-invert
|
|
||||||
.navbar-brand
|
|
||||||
& > .navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
color: $color-invert
|
|
||||||
& > a.navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
&:focus,
|
|
||||||
&:hover,
|
|
||||||
&.is-active
|
|
||||||
background-color: bulmaDarken($color, 5%)
|
|
||||||
color: $color-invert
|
|
||||||
.navbar-link
|
|
||||||
&::after
|
|
||||||
border-color: $color-invert
|
|
||||||
.navbar-burger
|
|
||||||
color: $color-invert
|
|
||||||
+from($navbar-breakpoint)
|
|
||||||
.navbar-start,
|
|
||||||
.navbar-end
|
|
||||||
& > .navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
color: $color-invert
|
|
||||||
& > a.navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
&:focus,
|
|
||||||
&:hover,
|
|
||||||
&.is-active
|
|
||||||
background-color: bulmaDarken($color, 5%)
|
|
||||||
color: $color-invert
|
|
||||||
.navbar-link
|
|
||||||
&::after
|
|
||||||
border-color: $color-invert
|
|
||||||
.navbar-item.has-dropdown:focus .navbar-link,
|
|
||||||
.navbar-item.has-dropdown:hover .navbar-link,
|
|
||||||
.navbar-item.has-dropdown.is-active .navbar-link
|
|
||||||
background-color: bulmaDarken($color, 5%)
|
|
||||||
color: $color-invert
|
|
||||||
.navbar-dropdown
|
|
||||||
a.navbar-item
|
|
||||||
&.is-active
|
|
||||||
background-color: $color
|
|
||||||
color: $color-invert
|
|
||||||
& > .container
|
|
||||||
align-items: stretch
|
|
||||||
display: flex
|
|
||||||
min-height: $navbar-height
|
|
||||||
width: 100%
|
|
||||||
&.has-shadow
|
|
||||||
box-shadow: $navbar-box-shadow-size $navbar-box-shadow-color
|
|
||||||
&.is-fixed-bottom,
|
|
||||||
&.is-fixed-top
|
|
||||||
+navbar-fixed
|
|
||||||
&.is-fixed-bottom
|
|
||||||
bottom: 0
|
|
||||||
&.has-shadow
|
|
||||||
box-shadow: $navbar-bottom-box-shadow-size $navbar-box-shadow-color
|
|
||||||
&.is-fixed-top
|
|
||||||
top: 0
|
|
||||||
|
|
||||||
html,
|
|
||||||
body
|
|
||||||
&.has-navbar-fixed-top
|
|
||||||
padding-top: $navbar-height
|
|
||||||
&.has-navbar-fixed-bottom
|
|
||||||
padding-bottom: $navbar-height
|
|
||||||
|
|
||||||
.navbar-brand,
|
|
||||||
.navbar-tabs
|
|
||||||
align-items: stretch
|
|
||||||
display: flex
|
|
||||||
flex-shrink: 0
|
|
||||||
min-height: $navbar-height
|
|
||||||
|
|
||||||
.navbar-brand
|
|
||||||
a.navbar-item
|
|
||||||
&:focus,
|
|
||||||
&:hover
|
|
||||||
background-color: transparent
|
|
||||||
|
|
||||||
.navbar-tabs
|
|
||||||
+overflow-touch
|
|
||||||
max-width: 100vw
|
|
||||||
overflow-x: auto
|
|
||||||
overflow-y: hidden
|
|
||||||
|
|
||||||
.navbar-burger
|
|
||||||
@extend %reset
|
|
||||||
color: $navbar-burger-color
|
|
||||||
+hamburger($navbar-height)
|
|
||||||
+ltr-property("margin", auto, false)
|
|
||||||
|
|
||||||
.navbar-menu
|
|
||||||
display: none
|
|
||||||
|
|
||||||
.navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
color: $navbar-item-color
|
|
||||||
display: block
|
|
||||||
line-height: 1.5
|
|
||||||
padding: 0.5rem 0.75rem
|
|
||||||
position: relative
|
|
||||||
.icon
|
|
||||||
&:only-child
|
|
||||||
margin-left: -0.25rem
|
|
||||||
margin-right: -0.25rem
|
|
||||||
|
|
||||||
a.navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
cursor: pointer
|
|
||||||
&:focus,
|
|
||||||
&:focus-within,
|
|
||||||
&:hover,
|
|
||||||
&.is-active
|
|
||||||
background-color: $navbar-item-hover-background-color
|
|
||||||
color: $navbar-item-hover-color
|
|
||||||
|
|
||||||
.navbar-item
|
|
||||||
flex-grow: 0
|
|
||||||
flex-shrink: 0
|
|
||||||
img
|
|
||||||
max-height: $navbar-item-img-max-height
|
|
||||||
&.has-dropdown
|
|
||||||
padding: 0
|
|
||||||
&.is-expanded
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 1
|
|
||||||
&.is-tab
|
|
||||||
border-bottom: 1px solid transparent
|
|
||||||
min-height: $navbar-height
|
|
||||||
padding-bottom: calc(0.5rem - 1px)
|
|
||||||
&:focus,
|
|
||||||
&:hover
|
|
||||||
background-color: $navbar-tab-hover-background-color
|
|
||||||
border-bottom-color: $navbar-tab-hover-border-bottom-color
|
|
||||||
&.is-active
|
|
||||||
background-color: $navbar-tab-active-background-color
|
|
||||||
border-bottom-color: $navbar-tab-active-border-bottom-color
|
|
||||||
border-bottom-style: $navbar-tab-active-border-bottom-style
|
|
||||||
border-bottom-width: $navbar-tab-active-border-bottom-width
|
|
||||||
color: $navbar-tab-active-color
|
|
||||||
padding-bottom: calc(0.5rem - #{$navbar-tab-active-border-bottom-width})
|
|
||||||
|
|
||||||
.navbar-content
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 1
|
|
||||||
|
|
||||||
.navbar-link:not(.is-arrowless)
|
|
||||||
+ltr-property("padding", 2.5em)
|
|
||||||
&::after
|
|
||||||
@extend %arrow
|
|
||||||
border-color: $navbar-dropdown-arrow
|
|
||||||
margin-top: -0.375em
|
|
||||||
+ltr-position(1.125em)
|
|
||||||
|
|
||||||
.navbar-dropdown
|
|
||||||
font-size: 0.875rem
|
|
||||||
padding-bottom: 0.5rem
|
|
||||||
padding-top: 0.5rem
|
|
||||||
.navbar-item
|
|
||||||
padding-left: 1.5rem
|
|
||||||
padding-right: 1.5rem
|
|
||||||
|
|
||||||
.navbar-divider
|
|
||||||
background-color: $navbar-divider-background-color
|
|
||||||
border: none
|
|
||||||
display: none
|
|
||||||
height: $navbar-divider-height
|
|
||||||
margin: 0.5rem 0
|
|
||||||
|
|
||||||
+until($navbar-breakpoint)
|
|
||||||
.navbar > .container
|
|
||||||
display: block
|
|
||||||
.navbar-brand,
|
|
||||||
.navbar-tabs
|
|
||||||
.navbar-item
|
|
||||||
align-items: center
|
|
||||||
display: flex
|
|
||||||
.navbar-link
|
|
||||||
&::after
|
|
||||||
display: none
|
|
||||||
.navbar-menu
|
|
||||||
background-color: $navbar-background-color
|
|
||||||
box-shadow: 0 8px 16px bulmaRgba($scheme-invert, 0.1)
|
|
||||||
padding: 0.5rem 0
|
|
||||||
&.is-active
|
|
||||||
display: block
|
|
||||||
// Fixed navbar
|
|
||||||
.navbar
|
|
||||||
&.is-fixed-bottom-touch,
|
|
||||||
&.is-fixed-top-touch
|
|
||||||
+navbar-fixed
|
|
||||||
&.is-fixed-bottom-touch
|
|
||||||
bottom: 0
|
|
||||||
&.has-shadow
|
|
||||||
box-shadow: 0 -2px 3px bulmaRgba($scheme-invert, 0.1)
|
|
||||||
&.is-fixed-top-touch
|
|
||||||
top: 0
|
|
||||||
&.is-fixed-top,
|
|
||||||
&.is-fixed-top-touch
|
|
||||||
.navbar-menu
|
|
||||||
+overflow-touch
|
|
||||||
max-height: calc(100vh - #{$navbar-height})
|
|
||||||
overflow: auto
|
|
||||||
html,
|
|
||||||
body
|
|
||||||
&.has-navbar-fixed-top-touch
|
|
||||||
padding-top: $navbar-height
|
|
||||||
&.has-navbar-fixed-bottom-touch
|
|
||||||
padding-bottom: $navbar-height
|
|
||||||
|
|
||||||
+from($navbar-breakpoint)
|
|
||||||
.navbar,
|
|
||||||
.navbar-menu,
|
|
||||||
.navbar-start,
|
|
||||||
.navbar-end
|
|
||||||
align-items: stretch
|
|
||||||
display: flex
|
|
||||||
.navbar
|
|
||||||
min-height: $navbar-height
|
|
||||||
&.is-spaced
|
|
||||||
padding: $navbar-padding-vertical $navbar-padding-horizontal
|
|
||||||
.navbar-start,
|
|
||||||
.navbar-end
|
|
||||||
align-items: center
|
|
||||||
a.navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
border-radius: $radius
|
|
||||||
&.is-transparent
|
|
||||||
a.navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
&:focus,
|
|
||||||
&:hover,
|
|
||||||
&.is-active
|
|
||||||
background-color: transparent !important
|
|
||||||
.navbar-item.has-dropdown
|
|
||||||
&.is-active,
|
|
||||||
&.is-hoverable:focus,
|
|
||||||
&.is-hoverable:focus-within,
|
|
||||||
&.is-hoverable:hover
|
|
||||||
.navbar-link
|
|
||||||
background-color: transparent !important
|
|
||||||
.navbar-dropdown
|
|
||||||
a.navbar-item
|
|
||||||
&:focus,
|
|
||||||
&:hover
|
|
||||||
background-color: $navbar-dropdown-item-hover-background-color
|
|
||||||
color: $navbar-dropdown-item-hover-color
|
|
||||||
&.is-active
|
|
||||||
background-color: $navbar-dropdown-item-active-background-color
|
|
||||||
color: $navbar-dropdown-item-active-color
|
|
||||||
.navbar-burger
|
|
||||||
display: none
|
|
||||||
.navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
align-items: center
|
|
||||||
display: flex
|
|
||||||
.navbar-item
|
|
||||||
&.has-dropdown
|
|
||||||
align-items: stretch
|
|
||||||
&.has-dropdown-up
|
|
||||||
.navbar-link::after
|
|
||||||
transform: rotate(135deg) translate(0.25em, -0.25em)
|
|
||||||
.navbar-dropdown
|
|
||||||
border-bottom: $navbar-dropdown-border-top
|
|
||||||
border-radius: $navbar-dropdown-radius $navbar-dropdown-radius 0 0
|
|
||||||
border-top: none
|
|
||||||
bottom: 100%
|
|
||||||
box-shadow: 0 -8px 8px bulmaRgba($scheme-invert, 0.1)
|
|
||||||
top: auto
|
|
||||||
&.is-active,
|
|
||||||
&.is-hoverable:focus,
|
|
||||||
&.is-hoverable:focus-within,
|
|
||||||
&.is-hoverable:hover
|
|
||||||
.navbar-dropdown
|
|
||||||
display: block
|
|
||||||
.navbar.is-spaced &,
|
|
||||||
&.is-boxed
|
|
||||||
opacity: 1
|
|
||||||
pointer-events: auto
|
|
||||||
transform: translateY(0)
|
|
||||||
.navbar-menu
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 0
|
|
||||||
.navbar-start
|
|
||||||
justify-content: flex-start
|
|
||||||
+ltr-property("margin", auto)
|
|
||||||
.navbar-end
|
|
||||||
justify-content: flex-end
|
|
||||||
+ltr-property("margin", auto, false)
|
|
||||||
.navbar-dropdown
|
|
||||||
background-color: $navbar-dropdown-background-color
|
|
||||||
border-bottom-left-radius: $navbar-dropdown-radius
|
|
||||||
border-bottom-right-radius: $navbar-dropdown-radius
|
|
||||||
border-top: $navbar-dropdown-border-top
|
|
||||||
box-shadow: 0 8px 8px bulmaRgba($scheme-invert, 0.1)
|
|
||||||
display: none
|
|
||||||
font-size: 0.875rem
|
|
||||||
+ltr-position(0, false)
|
|
||||||
min-width: 100%
|
|
||||||
position: absolute
|
|
||||||
top: 100%
|
|
||||||
z-index: $navbar-dropdown-z
|
|
||||||
.navbar-item
|
|
||||||
padding: 0.375rem 1rem
|
|
||||||
white-space: nowrap
|
|
||||||
a.navbar-item
|
|
||||||
+ltr-property("padding", 3rem)
|
|
||||||
&:focus,
|
|
||||||
&:hover
|
|
||||||
background-color: $navbar-dropdown-item-hover-background-color
|
|
||||||
color: $navbar-dropdown-item-hover-color
|
|
||||||
&.is-active
|
|
||||||
background-color: $navbar-dropdown-item-active-background-color
|
|
||||||
color: $navbar-dropdown-item-active-color
|
|
||||||
.navbar.is-spaced &,
|
|
||||||
&.is-boxed
|
|
||||||
border-radius: $navbar-dropdown-boxed-radius
|
|
||||||
border-top: none
|
|
||||||
box-shadow: $navbar-dropdown-boxed-shadow
|
|
||||||
display: block
|
|
||||||
opacity: 0
|
|
||||||
pointer-events: none
|
|
||||||
top: calc(100% + (#{$navbar-dropdown-offset}))
|
|
||||||
transform: translateY(-5px)
|
|
||||||
transition-duration: $speed
|
|
||||||
transition-property: opacity, transform
|
|
||||||
&.is-right
|
|
||||||
left: auto
|
|
||||||
right: 0
|
|
||||||
.navbar-divider
|
|
||||||
display: block
|
|
||||||
.navbar > .container,
|
|
||||||
.container > .navbar
|
|
||||||
.navbar-brand
|
|
||||||
+ltr-property("margin", -.75rem, false)
|
|
||||||
.navbar-menu
|
|
||||||
+ltr-property("margin", -.75rem)
|
|
||||||
// Fixed navbar
|
|
||||||
.navbar
|
|
||||||
&.is-fixed-bottom-desktop,
|
|
||||||
&.is-fixed-top-desktop
|
|
||||||
+navbar-fixed
|
|
||||||
&.is-fixed-bottom-desktop
|
|
||||||
bottom: 0
|
|
||||||
&.has-shadow
|
|
||||||
box-shadow: 0 -2px 3px bulmaRgba($scheme-invert, 0.1)
|
|
||||||
&.is-fixed-top-desktop
|
|
||||||
top: 0
|
|
||||||
html,
|
|
||||||
body
|
|
||||||
&.has-navbar-fixed-top-desktop
|
|
||||||
padding-top: $navbar-height
|
|
||||||
&.has-navbar-fixed-bottom-desktop
|
|
||||||
padding-bottom: $navbar-height
|
|
||||||
&.has-spaced-navbar-fixed-top
|
|
||||||
padding-top: $navbar-height + ($navbar-padding-vertical * 2)
|
|
||||||
&.has-spaced-navbar-fixed-bottom
|
|
||||||
padding-bottom: $navbar-height + ($navbar-padding-vertical * 2)
|
|
||||||
// Hover/Active states
|
|
||||||
a.navbar-item,
|
|
||||||
.navbar-link
|
|
||||||
&.is-active
|
|
||||||
color: $navbar-item-active-color
|
|
||||||
&.is-active:not(:focus):not(:hover)
|
|
||||||
background-color: $navbar-item-active-background-color
|
|
||||||
.navbar-item.has-dropdown
|
|
||||||
&:focus,
|
|
||||||
&:hover,
|
|
||||||
&.is-active
|
|
||||||
.navbar-link
|
|
||||||
background-color: $navbar-item-hover-background-color
|
|
||||||
|
|
||||||
// Combination
|
|
||||||
|
|
||||||
.hero
|
|
||||||
&.is-fullheight-with-navbar
|
|
||||||
min-height: calc(100vh - #{$navbar-height})
|
|
|
@ -1,167 +0,0 @@
|
||||||
@import "../utilities/controls"
|
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$pagination-color: $text-strong !default
|
|
||||||
$pagination-border-color: $border !default
|
|
||||||
$pagination-margin: -0.25rem !default
|
|
||||||
$pagination-min-width: $control-height !default
|
|
||||||
|
|
||||||
$pagination-item-font-size: 1em !default
|
|
||||||
$pagination-item-margin: 0.25rem !default
|
|
||||||
$pagination-item-padding-left: 0.5em !default
|
|
||||||
$pagination-item-padding-right: 0.5em !default
|
|
||||||
|
|
||||||
$pagination-nav-padding-left: 0.75em !default
|
|
||||||
$pagination-nav-padding-right: 0.75em !default
|
|
||||||
|
|
||||||
$pagination-hover-color: $link-hover !default
|
|
||||||
$pagination-hover-border-color: $link-hover-border !default
|
|
||||||
|
|
||||||
$pagination-focus-color: $link-focus !default
|
|
||||||
$pagination-focus-border-color: $link-focus-border !default
|
|
||||||
|
|
||||||
$pagination-active-color: $link-active !default
|
|
||||||
$pagination-active-border-color: $link-active-border !default
|
|
||||||
|
|
||||||
$pagination-disabled-color: $text-light !default
|
|
||||||
$pagination-disabled-background-color: $border !default
|
|
||||||
$pagination-disabled-border-color: $border !default
|
|
||||||
|
|
||||||
$pagination-current-color: $link-invert !default
|
|
||||||
$pagination-current-background-color: $link !default
|
|
||||||
$pagination-current-border-color: $link !default
|
|
||||||
|
|
||||||
$pagination-ellipsis-color: $grey-light !default
|
|
||||||
|
|
||||||
$pagination-shadow-inset: inset 0 1px 2px rgba($scheme-invert, 0.2) !default
|
|
||||||
|
|
||||||
.pagination
|
|
||||||
@extend %block
|
|
||||||
font-size: $size-normal
|
|
||||||
margin: $pagination-margin
|
|
||||||
// Sizes
|
|
||||||
&.is-small
|
|
||||||
font-size: $size-small
|
|
||||||
&.is-medium
|
|
||||||
font-size: $size-medium
|
|
||||||
&.is-large
|
|
||||||
font-size: $size-large
|
|
||||||
&.is-rounded
|
|
||||||
.pagination-previous,
|
|
||||||
.pagination-next
|
|
||||||
padding-left: 1em
|
|
||||||
padding-right: 1em
|
|
||||||
border-radius: $radius-rounded
|
|
||||||
.pagination-link
|
|
||||||
border-radius: $radius-rounded
|
|
||||||
|
|
||||||
.pagination,
|
|
||||||
.pagination-list
|
|
||||||
align-items: center
|
|
||||||
display: flex
|
|
||||||
justify-content: center
|
|
||||||
text-align: center
|
|
||||||
|
|
||||||
.pagination-previous,
|
|
||||||
.pagination-next,
|
|
||||||
.pagination-link,
|
|
||||||
.pagination-ellipsis
|
|
||||||
@extend %control
|
|
||||||
@extend %unselectable
|
|
||||||
font-size: $pagination-item-font-size
|
|
||||||
justify-content: center
|
|
||||||
margin: $pagination-item-margin
|
|
||||||
padding-left: $pagination-item-padding-left
|
|
||||||
padding-right: $pagination-item-padding-right
|
|
||||||
text-align: center
|
|
||||||
|
|
||||||
.pagination-previous,
|
|
||||||
.pagination-next,
|
|
||||||
.pagination-link
|
|
||||||
border-color: $pagination-border-color
|
|
||||||
color: $pagination-color
|
|
||||||
min-width: $pagination-min-width
|
|
||||||
&:hover
|
|
||||||
border-color: $pagination-hover-border-color
|
|
||||||
color: $pagination-hover-color
|
|
||||||
&:focus
|
|
||||||
border-color: $pagination-focus-border-color
|
|
||||||
&:active
|
|
||||||
box-shadow: $pagination-shadow-inset
|
|
||||||
&[disabled],
|
|
||||||
&.is-disabled
|
|
||||||
background-color: $pagination-disabled-background-color
|
|
||||||
border-color: $pagination-disabled-border-color
|
|
||||||
box-shadow: none
|
|
||||||
color: $pagination-disabled-color
|
|
||||||
opacity: 0.5
|
|
||||||
|
|
||||||
.pagination-previous,
|
|
||||||
.pagination-next
|
|
||||||
padding-left: $pagination-nav-padding-left
|
|
||||||
padding-right: $pagination-nav-padding-right
|
|
||||||
white-space: nowrap
|
|
||||||
|
|
||||||
.pagination-link
|
|
||||||
&.is-current
|
|
||||||
background-color: $pagination-current-background-color
|
|
||||||
border-color: $pagination-current-border-color
|
|
||||||
color: $pagination-current-color
|
|
||||||
|
|
||||||
.pagination-ellipsis
|
|
||||||
color: $pagination-ellipsis-color
|
|
||||||
pointer-events: none
|
|
||||||
|
|
||||||
.pagination-list
|
|
||||||
flex-wrap: wrap
|
|
||||||
li
|
|
||||||
list-style: none
|
|
||||||
|
|
||||||
+mobile
|
|
||||||
.pagination
|
|
||||||
flex-wrap: wrap
|
|
||||||
.pagination-previous,
|
|
||||||
.pagination-next
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 1
|
|
||||||
.pagination-list
|
|
||||||
li
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 1
|
|
||||||
|
|
||||||
+tablet
|
|
||||||
.pagination-list
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 1
|
|
||||||
justify-content: flex-start
|
|
||||||
order: 1
|
|
||||||
.pagination-previous,
|
|
||||||
.pagination-next,
|
|
||||||
.pagination-link,
|
|
||||||
.pagination-ellipsis
|
|
||||||
margin-bottom: 0
|
|
||||||
margin-top: 0
|
|
||||||
.pagination-previous
|
|
||||||
order: 2
|
|
||||||
.pagination-next
|
|
||||||
order: 3
|
|
||||||
.pagination
|
|
||||||
justify-content: space-between
|
|
||||||
margin-bottom: 0
|
|
||||||
margin-top: 0
|
|
||||||
&.is-centered
|
|
||||||
.pagination-previous
|
|
||||||
order: 1
|
|
||||||
.pagination-list
|
|
||||||
justify-content: center
|
|
||||||
order: 2
|
|
||||||
.pagination-next
|
|
||||||
order: 3
|
|
||||||
&.is-right
|
|
||||||
.pagination-previous
|
|
||||||
order: 1
|
|
||||||
.pagination-next
|
|
||||||
order: 2
|
|
||||||
.pagination-list
|
|
||||||
justify-content: flex-end
|
|
||||||
order: 3
|
|
|
@ -1,121 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$panel-margin: $block-spacing !default
|
|
||||||
$panel-item-border: 1px solid $border-light !default
|
|
||||||
$panel-radius: $radius-large !default
|
|
||||||
$panel-shadow: $shadow !default
|
|
||||||
|
|
||||||
$panel-heading-background-color: $border-light !default
|
|
||||||
$panel-heading-color: $text-strong !default
|
|
||||||
$panel-heading-line-height: 1.25 !default
|
|
||||||
$panel-heading-padding: 0.75em 1em !default
|
|
||||||
$panel-heading-radius: $radius !default
|
|
||||||
$panel-heading-size: 1.25em !default
|
|
||||||
$panel-heading-weight: $weight-bold !default
|
|
||||||
|
|
||||||
$panel-tabs-font-size: 0.875em !default
|
|
||||||
$panel-tab-border-bottom: 1px solid $border !default
|
|
||||||
$panel-tab-active-border-bottom-color: $link-active-border !default
|
|
||||||
$panel-tab-active-color: $link-active !default
|
|
||||||
|
|
||||||
$panel-list-item-color: $text !default
|
|
||||||
$panel-list-item-hover-color: $link !default
|
|
||||||
|
|
||||||
$panel-block-color: $text-strong !default
|
|
||||||
$panel-block-hover-background-color: $background !default
|
|
||||||
$panel-block-active-border-left-color: $link !default
|
|
||||||
$panel-block-active-color: $link-active !default
|
|
||||||
$panel-block-active-icon-color: $link !default
|
|
||||||
|
|
||||||
$panel-icon-color: $text-light !default
|
|
||||||
$panel-colors: $colors !default
|
|
||||||
|
|
||||||
.panel
|
|
||||||
border-radius: $panel-radius
|
|
||||||
box-shadow: $panel-shadow
|
|
||||||
font-size: $size-normal
|
|
||||||
&:not(:last-child)
|
|
||||||
margin-bottom: $panel-margin
|
|
||||||
// Colors
|
|
||||||
@each $name, $components in $panel-colors
|
|
||||||
$color: nth($components, 1)
|
|
||||||
$color-invert: nth($components, 2)
|
|
||||||
&.is-#{$name}
|
|
||||||
.panel-heading
|
|
||||||
background-color: $color
|
|
||||||
color: $color-invert
|
|
||||||
.panel-tabs a.is-active
|
|
||||||
border-bottom-color: $color
|
|
||||||
.panel-block.is-active .panel-icon
|
|
||||||
color: $color
|
|
||||||
|
|
||||||
.panel-tabs,
|
|
||||||
.panel-block
|
|
||||||
&:not(:last-child)
|
|
||||||
border-bottom: $panel-item-border
|
|
||||||
|
|
||||||
.panel-heading
|
|
||||||
background-color: $panel-heading-background-color
|
|
||||||
border-radius: $panel-radius $panel-radius 0 0
|
|
||||||
color: $panel-heading-color
|
|
||||||
font-size: $panel-heading-size
|
|
||||||
font-weight: $panel-heading-weight
|
|
||||||
line-height: $panel-heading-line-height
|
|
||||||
padding: $panel-heading-padding
|
|
||||||
|
|
||||||
.panel-tabs
|
|
||||||
align-items: flex-end
|
|
||||||
display: flex
|
|
||||||
font-size: $panel-tabs-font-size
|
|
||||||
justify-content: center
|
|
||||||
a
|
|
||||||
border-bottom: $panel-tab-border-bottom
|
|
||||||
margin-bottom: -1px
|
|
||||||
padding: 0.5em
|
|
||||||
// Modifiers
|
|
||||||
&.is-active
|
|
||||||
border-bottom-color: $panel-tab-active-border-bottom-color
|
|
||||||
color: $panel-tab-active-color
|
|
||||||
|
|
||||||
.panel-list
|
|
||||||
a
|
|
||||||
color: $panel-list-item-color
|
|
||||||
&:hover
|
|
||||||
color: $panel-list-item-hover-color
|
|
||||||
|
|
||||||
.panel-block
|
|
||||||
align-items: center
|
|
||||||
color: $panel-block-color
|
|
||||||
display: flex
|
|
||||||
justify-content: flex-start
|
|
||||||
padding: 0.5em 0.75em
|
|
||||||
input[type="checkbox"]
|
|
||||||
+ltr-property("margin", 0.75em)
|
|
||||||
& > .control
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 1
|
|
||||||
width: 100%
|
|
||||||
&.is-wrapped
|
|
||||||
flex-wrap: wrap
|
|
||||||
&.is-active
|
|
||||||
border-left-color: $panel-block-active-border-left-color
|
|
||||||
color: $panel-block-active-color
|
|
||||||
.panel-icon
|
|
||||||
color: $panel-block-active-icon-color
|
|
||||||
&:last-child
|
|
||||||
border-bottom-left-radius: $panel-radius
|
|
||||||
border-bottom-right-radius: $panel-radius
|
|
||||||
|
|
||||||
a.panel-block,
|
|
||||||
label.panel-block
|
|
||||||
cursor: pointer
|
|
||||||
&:hover
|
|
||||||
background-color: $panel-block-hover-background-color
|
|
||||||
|
|
||||||
.panel-icon
|
|
||||||
+fa(14px, 1em)
|
|
||||||
color: $panel-icon-color
|
|
||||||
+ltr-property("margin", 0.75em)
|
|
||||||
.fa
|
|
||||||
font-size: inherit
|
|
||||||
line-height: inherit
|
|
|
@ -1,176 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$tabs-border-bottom-color: $border !default
|
|
||||||
$tabs-border-bottom-style: solid !default
|
|
||||||
$tabs-border-bottom-width: 1px !default
|
|
||||||
$tabs-link-color: $text !default
|
|
||||||
$tabs-link-hover-border-bottom-color: $text-strong !default
|
|
||||||
$tabs-link-hover-color: $text-strong !default
|
|
||||||
$tabs-link-active-border-bottom-color: $link !default
|
|
||||||
$tabs-link-active-color: $link !default
|
|
||||||
$tabs-link-padding: 0.5em 1em !default
|
|
||||||
|
|
||||||
$tabs-boxed-link-radius: $radius !default
|
|
||||||
$tabs-boxed-link-hover-background-color: $background !default
|
|
||||||
$tabs-boxed-link-hover-border-bottom-color: $border !default
|
|
||||||
|
|
||||||
$tabs-boxed-link-active-background-color: $scheme-main !default
|
|
||||||
$tabs-boxed-link-active-border-color: $border !default
|
|
||||||
$tabs-boxed-link-active-border-bottom-color: transparent !default
|
|
||||||
|
|
||||||
$tabs-toggle-link-border-color: $border !default
|
|
||||||
$tabs-toggle-link-border-style: solid !default
|
|
||||||
$tabs-toggle-link-border-width: 1px !default
|
|
||||||
$tabs-toggle-link-hover-background-color: $background !default
|
|
||||||
$tabs-toggle-link-hover-border-color: $border-hover !default
|
|
||||||
$tabs-toggle-link-radius: $radius !default
|
|
||||||
$tabs-toggle-link-active-background-color: $link !default
|
|
||||||
$tabs-toggle-link-active-border-color: $link !default
|
|
||||||
$tabs-toggle-link-active-color: $link-invert !default
|
|
||||||
|
|
||||||
.tabs
|
|
||||||
@extend %block
|
|
||||||
+overflow-touch
|
|
||||||
@extend %unselectable
|
|
||||||
align-items: stretch
|
|
||||||
display: flex
|
|
||||||
font-size: $size-normal
|
|
||||||
justify-content: space-between
|
|
||||||
overflow: hidden
|
|
||||||
overflow-x: auto
|
|
||||||
white-space: nowrap
|
|
||||||
a
|
|
||||||
align-items: center
|
|
||||||
border-bottom-color: $tabs-border-bottom-color
|
|
||||||
border-bottom-style: $tabs-border-bottom-style
|
|
||||||
border-bottom-width: $tabs-border-bottom-width
|
|
||||||
color: $tabs-link-color
|
|
||||||
display: flex
|
|
||||||
justify-content: center
|
|
||||||
margin-bottom: -#{$tabs-border-bottom-width}
|
|
||||||
padding: $tabs-link-padding
|
|
||||||
vertical-align: top
|
|
||||||
&:hover
|
|
||||||
border-bottom-color: $tabs-link-hover-border-bottom-color
|
|
||||||
color: $tabs-link-hover-color
|
|
||||||
li
|
|
||||||
display: block
|
|
||||||
&.is-active
|
|
||||||
a
|
|
||||||
border-bottom-color: $tabs-link-active-border-bottom-color
|
|
||||||
color: $tabs-link-active-color
|
|
||||||
ul
|
|
||||||
align-items: center
|
|
||||||
border-bottom-color: $tabs-border-bottom-color
|
|
||||||
border-bottom-style: $tabs-border-bottom-style
|
|
||||||
border-bottom-width: $tabs-border-bottom-width
|
|
||||||
display: flex
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 0
|
|
||||||
justify-content: flex-start
|
|
||||||
&.is-left
|
|
||||||
padding-right: 0.75em
|
|
||||||
&.is-center
|
|
||||||
flex: none
|
|
||||||
justify-content: center
|
|
||||||
padding-left: 0.75em
|
|
||||||
padding-right: 0.75em
|
|
||||||
&.is-right
|
|
||||||
justify-content: flex-end
|
|
||||||
padding-left: 0.75em
|
|
||||||
.icon
|
|
||||||
&:first-child
|
|
||||||
+ltr-property("margin", 0.5em)
|
|
||||||
&:last-child
|
|
||||||
+ltr-property("margin", 0.5em, false)
|
|
||||||
// Alignment
|
|
||||||
&.is-centered
|
|
||||||
ul
|
|
||||||
justify-content: center
|
|
||||||
&.is-right
|
|
||||||
ul
|
|
||||||
justify-content: flex-end
|
|
||||||
// Styles
|
|
||||||
&.is-boxed
|
|
||||||
a
|
|
||||||
border: 1px solid transparent
|
|
||||||
+ltr
|
|
||||||
border-radius: $tabs-boxed-link-radius $tabs-boxed-link-radius 0 0
|
|
||||||
+rtl
|
|
||||||
border-radius: 0 0 $tabs-boxed-link-radius $tabs-boxed-link-radius
|
|
||||||
&:hover
|
|
||||||
background-color: $tabs-boxed-link-hover-background-color
|
|
||||||
border-bottom-color: $tabs-boxed-link-hover-border-bottom-color
|
|
||||||
li
|
|
||||||
&.is-active
|
|
||||||
a
|
|
||||||
background-color: $tabs-boxed-link-active-background-color
|
|
||||||
border-color: $tabs-boxed-link-active-border-color
|
|
||||||
border-bottom-color: $tabs-boxed-link-active-border-bottom-color !important
|
|
||||||
&.is-fullwidth
|
|
||||||
li
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 0
|
|
||||||
&.is-toggle
|
|
||||||
a
|
|
||||||
border-color: $tabs-toggle-link-border-color
|
|
||||||
border-style: $tabs-toggle-link-border-style
|
|
||||||
border-width: $tabs-toggle-link-border-width
|
|
||||||
margin-bottom: 0
|
|
||||||
position: relative
|
|
||||||
&:hover
|
|
||||||
background-color: $tabs-toggle-link-hover-background-color
|
|
||||||
border-color: $tabs-toggle-link-hover-border-color
|
|
||||||
z-index: 2
|
|
||||||
li
|
|
||||||
& + li
|
|
||||||
+ltr-property("margin", -#{$tabs-toggle-link-border-width}, false)
|
|
||||||
&:first-child a
|
|
||||||
+ltr
|
|
||||||
border-top-left-radius: $tabs-toggle-link-radius
|
|
||||||
border-bottom-left-radius: $tabs-toggle-link-radius
|
|
||||||
+rtl
|
|
||||||
border-top-right-radius: $tabs-toggle-link-radius
|
|
||||||
border-bottom-right-radius: $tabs-toggle-link-radius
|
|
||||||
&:last-child a
|
|
||||||
+ltr
|
|
||||||
border-top-right-radius: $tabs-toggle-link-radius
|
|
||||||
border-bottom-right-radius: $tabs-toggle-link-radius
|
|
||||||
+rtl
|
|
||||||
border-top-left-radius: $tabs-toggle-link-radius
|
|
||||||
border-bottom-left-radius: $tabs-toggle-link-radius
|
|
||||||
&.is-active
|
|
||||||
a
|
|
||||||
background-color: $tabs-toggle-link-active-background-color
|
|
||||||
border-color: $tabs-toggle-link-active-border-color
|
|
||||||
color: $tabs-toggle-link-active-color
|
|
||||||
z-index: 1
|
|
||||||
ul
|
|
||||||
border-bottom: none
|
|
||||||
&.is-toggle-rounded
|
|
||||||
li
|
|
||||||
&:first-child a
|
|
||||||
+ltr
|
|
||||||
border-bottom-left-radius: $radius-rounded
|
|
||||||
border-top-left-radius: $radius-rounded
|
|
||||||
padding-left: 1.25em
|
|
||||||
+rtl
|
|
||||||
border-bottom-right-radius: $radius-rounded
|
|
||||||
border-top-right-radius: $radius-rounded
|
|
||||||
padding-right: 1.25em
|
|
||||||
&:last-child a
|
|
||||||
+ltr
|
|
||||||
border-bottom-right-radius: $radius-rounded
|
|
||||||
border-top-right-radius: $radius-rounded
|
|
||||||
padding-right: 1.25em
|
|
||||||
+rtl
|
|
||||||
border-bottom-left-radius: $radius-rounded
|
|
||||||
border-top-left-radius: $radius-rounded
|
|
||||||
padding-left: 1.25em
|
|
||||||
// Sizes
|
|
||||||
&.is-small
|
|
||||||
font-size: $size-small
|
|
||||||
&.is-medium
|
|
||||||
font-size: $size-medium
|
|
||||||
&.is-large
|
|
||||||
font-size: $size-large
|
|
|
@ -1,16 +0,0 @@
|
||||||
/* Bulma Elements */
|
|
||||||
@charset "utf-8"
|
|
||||||
|
|
||||||
@import "box"
|
|
||||||
@import "button"
|
|
||||||
@import "container"
|
|
||||||
@import "content"
|
|
||||||
@import "icon"
|
|
||||||
@import "image"
|
|
||||||
@import "notification"
|
|
||||||
@import "progress"
|
|
||||||
@import "table"
|
|
||||||
@import "tag"
|
|
||||||
@import "title"
|
|
||||||
|
|
||||||
@import "other"
|
|
|
@ -1,26 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$box-color: $text !default
|
|
||||||
$box-background-color: $scheme-main !default
|
|
||||||
$box-radius: $radius-large !default
|
|
||||||
$box-shadow: $shadow !default
|
|
||||||
$box-padding: 1.25rem !default
|
|
||||||
|
|
||||||
$box-link-hover-shadow: 0 0.5em 1em -0.125em rgba($scheme-invert, 0.1), 0 0 0 1px $link !default
|
|
||||||
$box-link-active-shadow: inset 0 1px 2px rgba($scheme-invert, 0.2), 0 0 0 1px $link !default
|
|
||||||
|
|
||||||
.box
|
|
||||||
@extend %block
|
|
||||||
background-color: $box-background-color
|
|
||||||
border-radius: $box-radius
|
|
||||||
box-shadow: $box-shadow
|
|
||||||
color: $box-color
|
|
||||||
display: block
|
|
||||||
padding: $box-padding
|
|
||||||
|
|
||||||
a.box
|
|
||||||
&:hover,
|
|
||||||
&:focus
|
|
||||||
box-shadow: $box-link-hover-shadow
|
|
||||||
&:active
|
|
||||||
box-shadow: $box-link-active-shadow
|
|
|
@ -1,357 +0,0 @@
|
||||||
@import "../utilities/controls"
|
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$button-color: $text-strong !default
|
|
||||||
$button-background-color: $scheme-main !default
|
|
||||||
$button-family: false !default
|
|
||||||
|
|
||||||
$button-border-color: $border !default
|
|
||||||
$button-border-width: $control-border-width !default
|
|
||||||
|
|
||||||
$button-padding-vertical: calc(0.5em - #{$button-border-width}) !default
|
|
||||||
$button-padding-horizontal: 1em !default
|
|
||||||
|
|
||||||
$button-hover-color: $link-hover !default
|
|
||||||
$button-hover-border-color: $link-hover-border !default
|
|
||||||
|
|
||||||
$button-focus-color: $link-focus !default
|
|
||||||
$button-focus-border-color: $link-focus-border !default
|
|
||||||
$button-focus-box-shadow-size: 0 0 0 0.125em !default
|
|
||||||
$button-focus-box-shadow-color: bulmaRgba($link, 0.25) !default
|
|
||||||
|
|
||||||
$button-active-color: $link-active !default
|
|
||||||
$button-active-border-color: $link-active-border !default
|
|
||||||
|
|
||||||
$button-text-color: $text !default
|
|
||||||
$button-text-decoration: underline !default
|
|
||||||
$button-text-hover-background-color: $background !default
|
|
||||||
$button-text-hover-color: $text-strong !default
|
|
||||||
|
|
||||||
$button-ghost-background: none !default
|
|
||||||
$button-ghost-border-color: transparent !default
|
|
||||||
$button-ghost-color: $link !default
|
|
||||||
$button-ghost-decoration: none !default
|
|
||||||
$button-ghost-hover-color: $link !default
|
|
||||||
$button-ghost-hover-decoration: underline !default
|
|
||||||
|
|
||||||
$button-disabled-background-color: $scheme-main !default
|
|
||||||
$button-disabled-border-color: $border !default
|
|
||||||
$button-disabled-shadow: none !default
|
|
||||||
$button-disabled-opacity: 0.5 !default
|
|
||||||
|
|
||||||
$button-static-color: $text-light !default
|
|
||||||
$button-static-background-color: $scheme-main-ter !default
|
|
||||||
$button-static-border-color: $border !default
|
|
||||||
|
|
||||||
$button-colors: $colors !default
|
|
||||||
$button-responsive-sizes: ("mobile": ("small": ($size-small * 0.75), "normal": ($size-small * 0.875), "medium": $size-small, "large": $size-normal), "tablet-only": ("small": ($size-small * 0.875), "normal": ($size-small), "medium": $size-normal, "large": $size-medium)) !default
|
|
||||||
|
|
||||||
// The button sizes use mixins so they can be used at different breakpoints
|
|
||||||
=button-small
|
|
||||||
&:not(.is-rounded)
|
|
||||||
border-radius: $radius-small
|
|
||||||
font-size: $size-small
|
|
||||||
=button-normal
|
|
||||||
font-size: $size-normal
|
|
||||||
=button-medium
|
|
||||||
font-size: $size-medium
|
|
||||||
=button-large
|
|
||||||
font-size: $size-large
|
|
||||||
|
|
||||||
.button
|
|
||||||
@extend %control
|
|
||||||
@extend %unselectable
|
|
||||||
background-color: $button-background-color
|
|
||||||
border-color: $button-border-color
|
|
||||||
border-width: $button-border-width
|
|
||||||
color: $button-color
|
|
||||||
cursor: pointer
|
|
||||||
@if $button-family
|
|
||||||
font-family: $button-family
|
|
||||||
justify-content: center
|
|
||||||
padding-bottom: $button-padding-vertical
|
|
||||||
padding-left: $button-padding-horizontal
|
|
||||||
padding-right: $button-padding-horizontal
|
|
||||||
padding-top: $button-padding-vertical
|
|
||||||
text-align: center
|
|
||||||
white-space: nowrap
|
|
||||||
strong
|
|
||||||
color: inherit
|
|
||||||
.icon
|
|
||||||
&,
|
|
||||||
&.is-small,
|
|
||||||
&.is-medium,
|
|
||||||
&.is-large
|
|
||||||
height: 1.5em
|
|
||||||
width: 1.5em
|
|
||||||
&:first-child:not(:last-child)
|
|
||||||
+ltr-property("margin", calc(#{-0.5 * $button-padding-horizontal} - #{$button-border-width}), false)
|
|
||||||
+ltr-property("margin", $button-padding-horizontal * 0.25)
|
|
||||||
&:last-child:not(:first-child)
|
|
||||||
+ltr-property("margin", $button-padding-horizontal * 0.25, false)
|
|
||||||
+ltr-property("margin", calc(#{-0.5 * $button-padding-horizontal} - #{$button-border-width}))
|
|
||||||
&:first-child:last-child
|
|
||||||
margin-left: calc(#{-0.5 * $button-padding-horizontal} - #{$button-border-width})
|
|
||||||
margin-right: calc(#{-0.5 * $button-padding-horizontal} - #{$button-border-width})
|
|
||||||
// States
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered
|
|
||||||
border-color: $button-hover-border-color
|
|
||||||
color: $button-hover-color
|
|
||||||
&:focus,
|
|
||||||
&.is-focused
|
|
||||||
border-color: $button-focus-border-color
|
|
||||||
color: $button-focus-color
|
|
||||||
&:not(:active)
|
|
||||||
box-shadow: $button-focus-box-shadow-size $button-focus-box-shadow-color
|
|
||||||
&:active,
|
|
||||||
&.is-active
|
|
||||||
border-color: $button-active-border-color
|
|
||||||
color: $button-active-color
|
|
||||||
// Colors
|
|
||||||
&.is-text
|
|
||||||
background-color: transparent
|
|
||||||
border-color: transparent
|
|
||||||
color: $button-text-color
|
|
||||||
text-decoration: $button-text-decoration
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered,
|
|
||||||
&:focus,
|
|
||||||
&.is-focused
|
|
||||||
background-color: $button-text-hover-background-color
|
|
||||||
color: $button-text-hover-color
|
|
||||||
&:active,
|
|
||||||
&.is-active
|
|
||||||
background-color: bulmaDarken($button-text-hover-background-color, 5%)
|
|
||||||
color: $button-text-hover-color
|
|
||||||
&[disabled],
|
|
||||||
fieldset[disabled] &
|
|
||||||
background-color: transparent
|
|
||||||
border-color: transparent
|
|
||||||
box-shadow: none
|
|
||||||
&.is-ghost
|
|
||||||
background: $button-ghost-background
|
|
||||||
border-color: $button-ghost-border-color
|
|
||||||
color: $button-ghost-color
|
|
||||||
text-decoration: $button-ghost-decoration
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered
|
|
||||||
color: $button-ghost-hover-color
|
|
||||||
text-decoration: $button-ghost-hover-decoration
|
|
||||||
@each $name, $pair in $button-colors
|
|
||||||
$color: nth($pair, 1)
|
|
||||||
$color-invert: nth($pair, 2)
|
|
||||||
&.is-#{$name}
|
|
||||||
background-color: $color
|
|
||||||
border-color: transparent
|
|
||||||
color: $color-invert
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered
|
|
||||||
background-color: bulmaDarken($color, 2.5%)
|
|
||||||
border-color: transparent
|
|
||||||
color: $color-invert
|
|
||||||
&:focus,
|
|
||||||
&.is-focused
|
|
||||||
border-color: transparent
|
|
||||||
color: $color-invert
|
|
||||||
&:not(:active)
|
|
||||||
box-shadow: $button-focus-box-shadow-size bulmaRgba($color, 0.25)
|
|
||||||
&:active,
|
|
||||||
&.is-active
|
|
||||||
background-color: bulmaDarken($color, 5%)
|
|
||||||
border-color: transparent
|
|
||||||
color: $color-invert
|
|
||||||
&[disabled],
|
|
||||||
fieldset[disabled] &
|
|
||||||
background-color: $color
|
|
||||||
border-color: $color
|
|
||||||
box-shadow: none
|
|
||||||
&.is-inverted
|
|
||||||
background-color: $color-invert
|
|
||||||
color: $color
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered
|
|
||||||
background-color: bulmaDarken($color-invert, 5%)
|
|
||||||
&[disabled],
|
|
||||||
fieldset[disabled] &
|
|
||||||
background-color: $color-invert
|
|
||||||
border-color: transparent
|
|
||||||
box-shadow: none
|
|
||||||
color: $color
|
|
||||||
&.is-loading
|
|
||||||
&::after
|
|
||||||
border-color: transparent transparent $color-invert $color-invert !important
|
|
||||||
&.is-outlined
|
|
||||||
background-color: transparent
|
|
||||||
border-color: $color
|
|
||||||
color: $color
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered,
|
|
||||||
&:focus,
|
|
||||||
&.is-focused
|
|
||||||
background-color: $color
|
|
||||||
border-color: $color
|
|
||||||
color: $color-invert
|
|
||||||
&.is-loading
|
|
||||||
&::after
|
|
||||||
border-color: transparent transparent $color $color !important
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered,
|
|
||||||
&:focus,
|
|
||||||
&.is-focused
|
|
||||||
&::after
|
|
||||||
border-color: transparent transparent $color-invert $color-invert !important
|
|
||||||
&[disabled],
|
|
||||||
fieldset[disabled] &
|
|
||||||
background-color: transparent
|
|
||||||
border-color: $color
|
|
||||||
box-shadow: none
|
|
||||||
color: $color
|
|
||||||
&.is-inverted.is-outlined
|
|
||||||
background-color: transparent
|
|
||||||
border-color: $color-invert
|
|
||||||
color: $color-invert
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered,
|
|
||||||
&:focus,
|
|
||||||
&.is-focused
|
|
||||||
background-color: $color-invert
|
|
||||||
color: $color
|
|
||||||
&.is-loading
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered,
|
|
||||||
&:focus,
|
|
||||||
&.is-focused
|
|
||||||
&::after
|
|
||||||
border-color: transparent transparent $color $color !important
|
|
||||||
&[disabled],
|
|
||||||
fieldset[disabled] &
|
|
||||||
background-color: transparent
|
|
||||||
border-color: $color-invert
|
|
||||||
box-shadow: none
|
|
||||||
color: $color-invert
|
|
||||||
// If light and dark colors are provided
|
|
||||||
@if length($pair) >= 4
|
|
||||||
$color-light: nth($pair, 3)
|
|
||||||
$color-dark: nth($pair, 4)
|
|
||||||
&.is-light
|
|
||||||
background-color: $color-light
|
|
||||||
color: $color-dark
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered
|
|
||||||
background-color: bulmaDarken($color-light, 2.5%)
|
|
||||||
border-color: transparent
|
|
||||||
color: $color-dark
|
|
||||||
&:active,
|
|
||||||
&.is-active
|
|
||||||
background-color: bulmaDarken($color-light, 5%)
|
|
||||||
border-color: transparent
|
|
||||||
color: $color-dark
|
|
||||||
// Sizes
|
|
||||||
&.is-small
|
|
||||||
+button-small
|
|
||||||
&.is-normal
|
|
||||||
+button-normal
|
|
||||||
&.is-medium
|
|
||||||
+button-medium
|
|
||||||
&.is-large
|
|
||||||
+button-large
|
|
||||||
// Modifiers
|
|
||||||
&[disabled],
|
|
||||||
fieldset[disabled] &
|
|
||||||
background-color: $button-disabled-background-color
|
|
||||||
border-color: $button-disabled-border-color
|
|
||||||
box-shadow: $button-disabled-shadow
|
|
||||||
opacity: $button-disabled-opacity
|
|
||||||
&.is-fullwidth
|
|
||||||
display: flex
|
|
||||||
width: 100%
|
|
||||||
&.is-loading
|
|
||||||
color: transparent !important
|
|
||||||
pointer-events: none
|
|
||||||
&::after
|
|
||||||
@extend %loader
|
|
||||||
+center(1em)
|
|
||||||
position: absolute !important
|
|
||||||
&.is-static
|
|
||||||
background-color: $button-static-background-color
|
|
||||||
border-color: $button-static-border-color
|
|
||||||
color: $button-static-color
|
|
||||||
box-shadow: none
|
|
||||||
pointer-events: none
|
|
||||||
&.is-rounded
|
|
||||||
border-radius: $radius-rounded
|
|
||||||
padding-left: calc(#{$button-padding-horizontal} + 0.25em)
|
|
||||||
padding-right: calc(#{$button-padding-horizontal} + 0.25em)
|
|
||||||
|
|
||||||
.buttons
|
|
||||||
align-items: center
|
|
||||||
display: flex
|
|
||||||
flex-wrap: wrap
|
|
||||||
justify-content: flex-start
|
|
||||||
.button
|
|
||||||
margin-bottom: 0.5rem
|
|
||||||
&:not(:last-child):not(.is-fullwidth)
|
|
||||||
+ltr-property("margin", 0.5rem)
|
|
||||||
&:last-child
|
|
||||||
margin-bottom: -0.5rem
|
|
||||||
&:not(:last-child)
|
|
||||||
margin-bottom: 1rem
|
|
||||||
// Sizes
|
|
||||||
&.are-small
|
|
||||||
.button:not(.is-normal):not(.is-medium):not(.is-large)
|
|
||||||
+button-small
|
|
||||||
&.are-medium
|
|
||||||
.button:not(.is-small):not(.is-normal):not(.is-large)
|
|
||||||
+button-medium
|
|
||||||
&.are-large
|
|
||||||
.button:not(.is-small):not(.is-normal):not(.is-medium)
|
|
||||||
+button-large
|
|
||||||
&.has-addons
|
|
||||||
.button
|
|
||||||
&:not(:first-child)
|
|
||||||
border-bottom-left-radius: 0
|
|
||||||
border-top-left-radius: 0
|
|
||||||
&:not(:last-child)
|
|
||||||
border-bottom-right-radius: 0
|
|
||||||
border-top-right-radius: 0
|
|
||||||
+ltr-property("margin", -1px)
|
|
||||||
&:last-child
|
|
||||||
+ltr-property("margin", 0)
|
|
||||||
&:hover,
|
|
||||||
&.is-hovered
|
|
||||||
z-index: 2
|
|
||||||
&:focus,
|
|
||||||
&.is-focused,
|
|
||||||
&:active,
|
|
||||||
&.is-active,
|
|
||||||
&.is-selected
|
|
||||||
z-index: 3
|
|
||||||
&:hover
|
|
||||||
z-index: 4
|
|
||||||
&.is-expanded
|
|
||||||
flex-grow: 1
|
|
||||||
flex-shrink: 1
|
|
||||||
&.is-centered
|
|
||||||
justify-content: center
|
|
||||||
&:not(.has-addons)
|
|
||||||
.button:not(.is-fullwidth)
|
|
||||||
margin-left: 0.25rem
|
|
||||||
margin-right: 0.25rem
|
|
||||||
&.is-right
|
|
||||||
justify-content: flex-end
|
|
||||||
&:not(.has-addons)
|
|
||||||
.button:not(.is-fullwidth)
|
|
||||||
margin-left: 0.25rem
|
|
||||||
margin-right: 0.25rem
|
|
||||||
|
|
||||||
@each $bp-name, $bp-sizes in $button-responsive-sizes
|
|
||||||
+breakpoint($bp-name)
|
|
||||||
@each $size, $value in $bp-sizes
|
|
||||||
@if $size != "normal"
|
|
||||||
.button.is-responsive.is-#{$size}
|
|
||||||
font-size: $value
|
|
||||||
@else
|
|
||||||
.button.is-responsive,
|
|
||||||
.button.is-responsive.is-normal
|
|
||||||
font-size: $value
|
|
|
@ -1,29 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$container-offset: (2 * $gap) !default
|
|
||||||
$container-max-width: $fullhd !default
|
|
||||||
|
|
||||||
.container
|
|
||||||
flex-grow: 1
|
|
||||||
margin: 0 auto
|
|
||||||
position: relative
|
|
||||||
width: auto
|
|
||||||
&.is-fluid
|
|
||||||
max-width: none !important
|
|
||||||
padding-left: $gap
|
|
||||||
padding-right: $gap
|
|
||||||
width: 100%
|
|
||||||
+desktop
|
|
||||||
max-width: $desktop - $container-offset
|
|
||||||
+until-widescreen
|
|
||||||
&.is-widescreen:not(.is-max-desktop)
|
|
||||||
max-width: min($widescreen, $container-max-width) - $container-offset
|
|
||||||
+until-fullhd
|
|
||||||
&.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen)
|
|
||||||
max-width: min($fullhd, $container-max-width) - $container-offset
|
|
||||||
+widescreen
|
|
||||||
&:not(.is-max-desktop)
|
|
||||||
max-width: min($widescreen, $container-max-width) - $container-offset
|
|
||||||
+fullhd
|
|
||||||
&:not(.is-max-desktop):not(.is-max-widescreen)
|
|
||||||
max-width: min($fullhd, $container-max-width) - $container-offset
|
|
|
@ -1,162 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$content-heading-color: $text-strong !default
|
|
||||||
$content-heading-weight: $weight-semibold !default
|
|
||||||
$content-heading-line-height: 1.125 !default
|
|
||||||
|
|
||||||
$content-block-margin-bottom: 1em !default
|
|
||||||
|
|
||||||
$content-blockquote-background-color: $background !default
|
|
||||||
$content-blockquote-border-left: 5px solid $border !default
|
|
||||||
$content-blockquote-padding: 1.25em 1.5em !default
|
|
||||||
|
|
||||||
$content-pre-padding: 1.25em 1.5em !default
|
|
||||||
|
|
||||||
$content-table-cell-border: 1px solid $border !default
|
|
||||||
$content-table-cell-border-width: 0 0 1px !default
|
|
||||||
$content-table-cell-padding: 0.5em 0.75em !default
|
|
||||||
$content-table-cell-heading-color: $text-strong !default
|
|
||||||
$content-table-head-cell-border-width: 0 0 2px !default
|
|
||||||
$content-table-head-cell-color: $text-strong !default
|
|
||||||
$content-table-body-last-row-cell-border-bottom-width: 0 !default
|
|
||||||
$content-table-foot-cell-border-width: 2px 0 0 !default
|
|
||||||
$content-table-foot-cell-color: $text-strong !default
|
|
||||||
|
|
||||||
.content
|
|
||||||
@extend %block
|
|
||||||
// Inline
|
|
||||||
li + li
|
|
||||||
margin-top: 0.25em
|
|
||||||
// Block
|
|
||||||
p,
|
|
||||||
dl,
|
|
||||||
ol,
|
|
||||||
ul,
|
|
||||||
blockquote,
|
|
||||||
pre,
|
|
||||||
table
|
|
||||||
&:not(:last-child)
|
|
||||||
margin-bottom: $content-block-margin-bottom
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6
|
|
||||||
color: $content-heading-color
|
|
||||||
font-weight: $content-heading-weight
|
|
||||||
line-height: $content-heading-line-height
|
|
||||||
h1
|
|
||||||
font-size: 2em
|
|
||||||
margin-bottom: 0.5em
|
|
||||||
&:not(:first-child)
|
|
||||||
margin-top: 1em
|
|
||||||
h2
|
|
||||||
font-size: 1.75em
|
|
||||||
margin-bottom: 0.5714em
|
|
||||||
&:not(:first-child)
|
|
||||||
margin-top: 1.1428em
|
|
||||||
h3
|
|
||||||
font-size: 1.5em
|
|
||||||
margin-bottom: 0.6666em
|
|
||||||
&:not(:first-child)
|
|
||||||
margin-top: 1.3333em
|
|
||||||
h4
|
|
||||||
font-size: 1.25em
|
|
||||||
margin-bottom: 0.8em
|
|
||||||
h5
|
|
||||||
font-size: 1.125em
|
|
||||||
margin-bottom: 0.8888em
|
|
||||||
h6
|
|
||||||
font-size: 1em
|
|
||||||
margin-bottom: 1em
|
|
||||||
blockquote
|
|
||||||
background-color: $content-blockquote-background-color
|
|
||||||
+ltr-property("border", $content-blockquote-border-left, false)
|
|
||||||
padding: $content-blockquote-padding
|
|
||||||
ol
|
|
||||||
list-style-position: outside
|
|
||||||
+ltr-property("margin", 2em, false)
|
|
||||||
margin-top: 1em
|
|
||||||
&:not([type])
|
|
||||||
list-style-type: decimal
|
|
||||||
&.is-lower-alpha
|
|
||||||
list-style-type: lower-alpha
|
|
||||||
&.is-lower-roman
|
|
||||||
list-style-type: lower-roman
|
|
||||||
&.is-upper-alpha
|
|
||||||
list-style-type: upper-alpha
|
|
||||||
&.is-upper-roman
|
|
||||||
list-style-type: upper-roman
|
|
||||||
ul
|
|
||||||
list-style: disc outside
|
|
||||||
+ltr-property("margin", 2em, false)
|
|
||||||
margin-top: 1em
|
|
||||||
ul
|
|
||||||
list-style-type: circle
|
|
||||||
margin-top: 0.5em
|
|
||||||
ul
|
|
||||||
list-style-type: square
|
|
||||||
dd
|
|
||||||
+ltr-property("margin", 2em, false)
|
|
||||||
figure
|
|
||||||
margin-left: 2em
|
|
||||||
margin-right: 2em
|
|
||||||
text-align: center
|
|
||||||
&:not(:first-child)
|
|
||||||
margin-top: 2em
|
|
||||||
&:not(:last-child)
|
|
||||||
margin-bottom: 2em
|
|
||||||
img
|
|
||||||
display: inline-block
|
|
||||||
figcaption
|
|
||||||
font-style: italic
|
|
||||||
pre
|
|
||||||
+overflow-touch
|
|
||||||
overflow-x: auto
|
|
||||||
padding: $content-pre-padding
|
|
||||||
white-space: pre
|
|
||||||
word-wrap: normal
|
|
||||||
sup,
|
|
||||||
sub
|
|
||||||
font-size: 75%
|
|
||||||
table
|
|
||||||
width: 100%
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border: $content-table-cell-border
|
|
||||||
border-width: $content-table-cell-border-width
|
|
||||||
padding: $content-table-cell-padding
|
|
||||||
vertical-align: top
|
|
||||||
th
|
|
||||||
color: $content-table-cell-heading-color
|
|
||||||
&:not([align])
|
|
||||||
text-align: inherit
|
|
||||||
thead
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border-width: $content-table-head-cell-border-width
|
|
||||||
color: $content-table-head-cell-color
|
|
||||||
tfoot
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border-width: $content-table-foot-cell-border-width
|
|
||||||
color: $content-table-foot-cell-color
|
|
||||||
tbody
|
|
||||||
tr
|
|
||||||
&:last-child
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border-bottom-width: $content-table-body-last-row-cell-border-bottom-width
|
|
||||||
.tabs
|
|
||||||
li + li
|
|
||||||
margin-top: 0
|
|
||||||
// Sizes
|
|
||||||
&.is-small
|
|
||||||
font-size: $size-small
|
|
||||||
&.is-normal
|
|
||||||
font-size: $size-normal
|
|
||||||
&.is-medium
|
|
||||||
font-size: $size-medium
|
|
||||||
&.is-large
|
|
||||||
font-size: $size-large
|
|
|
@ -1 +0,0 @@
|
||||||
@warn "The form.sass file is DEPRECATED. It has moved into its own /form folder. Please import sass/form/_all instead."
|
|
|
@ -1,46 +0,0 @@
|
||||||
$icon-dimensions: 1.5rem !default
|
|
||||||
$icon-dimensions-small: 1rem !default
|
|
||||||
$icon-dimensions-medium: 2rem !default
|
|
||||||
$icon-dimensions-large: 3rem !default
|
|
||||||
$icon-text-spacing: 0.25em !default
|
|
||||||
|
|
||||||
.icon
|
|
||||||
align-items: center
|
|
||||||
display: inline-flex
|
|
||||||
justify-content: center
|
|
||||||
height: $icon-dimensions
|
|
||||||
width: $icon-dimensions
|
|
||||||
// Sizes
|
|
||||||
&.is-small
|
|
||||||
height: $icon-dimensions-small
|
|
||||||
width: $icon-dimensions-small
|
|
||||||
&.is-medium
|
|
||||||
height: $icon-dimensions-medium
|
|
||||||
width: $icon-dimensions-medium
|
|
||||||
&.is-large
|
|
||||||
height: $icon-dimensions-large
|
|
||||||
width: $icon-dimensions-large
|
|
||||||
|
|
||||||
.icon-text
|
|
||||||
align-items: flex-start
|
|
||||||
color: inherit
|
|
||||||
display: inline-flex
|
|
||||||
flex-wrap: wrap
|
|
||||||
line-height: $icon-dimensions
|
|
||||||
vertical-align: top
|
|
||||||
.icon
|
|
||||||
flex-grow: 0
|
|
||||||
flex-shrink: 0
|
|
||||||
&:not(:last-child)
|
|
||||||
+ltr
|
|
||||||
margin-right: $icon-text-spacing
|
|
||||||
+rtl
|
|
||||||
margin-left: $icon-text-spacing
|
|
||||||
&:not(:first-child)
|
|
||||||
+ltr
|
|
||||||
margin-left: $icon-text-spacing
|
|
||||||
+rtl
|
|
||||||
margin-right: $icon-text-spacing
|
|
||||||
|
|
||||||
div.icon-text
|
|
||||||
display: flex
|
|
|
@ -1,73 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$dimensions: 16 24 32 48 64 96 128 !default
|
|
||||||
|
|
||||||
.image
|
|
||||||
display: block
|
|
||||||
position: relative
|
|
||||||
img
|
|
||||||
display: block
|
|
||||||
height: auto
|
|
||||||
width: 100%
|
|
||||||
&.is-rounded
|
|
||||||
border-radius: $radius-rounded
|
|
||||||
&.is-fullwidth
|
|
||||||
width: 100%
|
|
||||||
// Ratio
|
|
||||||
&.is-square,
|
|
||||||
&.is-1by1,
|
|
||||||
&.is-5by4,
|
|
||||||
&.is-4by3,
|
|
||||||
&.is-3by2,
|
|
||||||
&.is-5by3,
|
|
||||||
&.is-16by9,
|
|
||||||
&.is-2by1,
|
|
||||||
&.is-3by1,
|
|
||||||
&.is-4by5,
|
|
||||||
&.is-3by4,
|
|
||||||
&.is-2by3,
|
|
||||||
&.is-3by5,
|
|
||||||
&.is-9by16,
|
|
||||||
&.is-1by2,
|
|
||||||
&.is-1by3
|
|
||||||
img,
|
|
||||||
.has-ratio
|
|
||||||
@extend %overlay
|
|
||||||
height: 100%
|
|
||||||
width: 100%
|
|
||||||
&.is-square,
|
|
||||||
&.is-1by1
|
|
||||||
padding-top: 100%
|
|
||||||
&.is-5by4
|
|
||||||
padding-top: 80%
|
|
||||||
&.is-4by3
|
|
||||||
padding-top: 75%
|
|
||||||
&.is-3by2
|
|
||||||
padding-top: 66.6666%
|
|
||||||
&.is-5by3
|
|
||||||
padding-top: 60%
|
|
||||||
&.is-16by9
|
|
||||||
padding-top: 56.25%
|
|
||||||
&.is-2by1
|
|
||||||
padding-top: 50%
|
|
||||||
&.is-3by1
|
|
||||||
padding-top: 33.3333%
|
|
||||||
&.is-4by5
|
|
||||||
padding-top: 125%
|
|
||||||
&.is-3by4
|
|
||||||
padding-top: 133.3333%
|
|
||||||
&.is-2by3
|
|
||||||
padding-top: 150%
|
|
||||||
&.is-3by5
|
|
||||||
padding-top: 166.6666%
|
|
||||||
&.is-9by16
|
|
||||||
padding-top: 177.7777%
|
|
||||||
&.is-1by2
|
|
||||||
padding-top: 200%
|
|
||||||
&.is-1by3
|
|
||||||
padding-top: 300%
|
|
||||||
// Sizes
|
|
||||||
@each $dimension in $dimensions
|
|
||||||
&.is-#{$dimension}x#{$dimension}
|
|
||||||
height: $dimension * 1px
|
|
||||||
width: $dimension * 1px
|
|
|
@ -1,52 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$notification-background-color: $background !default
|
|
||||||
$notification-code-background-color: $scheme-main !default
|
|
||||||
$notification-radius: $radius !default
|
|
||||||
$notification-padding: 1.25rem 2.5rem 1.25rem 1.5rem !default
|
|
||||||
$notification-padding-ltr: 1.25rem 2.5rem 1.25rem 1.5rem !default
|
|
||||||
$notification-padding-rtl: 1.25rem 1.5rem 1.25rem 2.5rem !default
|
|
||||||
|
|
||||||
$notification-colors: $colors !default
|
|
||||||
|
|
||||||
.notification
|
|
||||||
@extend %block
|
|
||||||
background-color: $notification-background-color
|
|
||||||
border-radius: $notification-radius
|
|
||||||
position: relative
|
|
||||||
+ltr
|
|
||||||
padding: $notification-padding-ltr
|
|
||||||
+rtl
|
|
||||||
padding: $notification-padding-rtl
|
|
||||||
a:not(.button):not(.dropdown-item)
|
|
||||||
color: currentColor
|
|
||||||
text-decoration: underline
|
|
||||||
strong
|
|
||||||
color: currentColor
|
|
||||||
code,
|
|
||||||
pre
|
|
||||||
background: $notification-code-background-color
|
|
||||||
pre code
|
|
||||||
background: transparent
|
|
||||||
& > .delete
|
|
||||||
+ltr-position(0.5rem)
|
|
||||||
position: absolute
|
|
||||||
top: 0.5rem
|
|
||||||
.title,
|
|
||||||
.subtitle,
|
|
||||||
.content
|
|
||||||
color: currentColor
|
|
||||||
// Colors
|
|
||||||
@each $name, $pair in $notification-colors
|
|
||||||
$color: nth($pair, 1)
|
|
||||||
$color-invert: nth($pair, 2)
|
|
||||||
&.is-#{$name}
|
|
||||||
background-color: $color
|
|
||||||
color: $color-invert
|
|
||||||
// If light and dark colors are provided
|
|
||||||
@if length($pair) >= 4
|
|
||||||
$color-light: nth($pair, 3)
|
|
||||||
$color-dark: nth($pair, 4)
|
|
||||||
&.is-light
|
|
||||||
background-color: $color-light
|
|
||||||
color: $color-dark
|
|
|
@ -1,31 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
.block
|
|
||||||
@extend %block
|
|
||||||
|
|
||||||
.delete
|
|
||||||
@extend %delete
|
|
||||||
|
|
||||||
.heading
|
|
||||||
display: block
|
|
||||||
font-size: 11px
|
|
||||||
letter-spacing: 1px
|
|
||||||
margin-bottom: 5px
|
|
||||||
text-transform: uppercase
|
|
||||||
|
|
||||||
.loader
|
|
||||||
@extend %loader
|
|
||||||
|
|
||||||
.number
|
|
||||||
align-items: center
|
|
||||||
background-color: $background
|
|
||||||
border-radius: $radius-rounded
|
|
||||||
display: inline-flex
|
|
||||||
font-size: $size-medium
|
|
||||||
height: 2em
|
|
||||||
justify-content: center
|
|
||||||
margin-right: 1.5rem
|
|
||||||
min-width: 2.5em
|
|
||||||
padding: 0.25rem 0.5rem
|
|
||||||
text-align: center
|
|
||||||
vertical-align: top
|
|
|
@ -1,73 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$progress-bar-background-color: $border-light !default
|
|
||||||
$progress-value-background-color: $text !default
|
|
||||||
$progress-border-radius: $radius-rounded !default
|
|
||||||
|
|
||||||
$progress-indeterminate-duration: 1.5s !default
|
|
||||||
|
|
||||||
$progress-colors: $colors !default
|
|
||||||
|
|
||||||
.progress
|
|
||||||
@extend %block
|
|
||||||
-moz-appearance: none
|
|
||||||
-webkit-appearance: none
|
|
||||||
border: none
|
|
||||||
border-radius: $progress-border-radius
|
|
||||||
display: block
|
|
||||||
height: $size-normal
|
|
||||||
overflow: hidden
|
|
||||||
padding: 0
|
|
||||||
width: 100%
|
|
||||||
&::-webkit-progress-bar
|
|
||||||
background-color: $progress-bar-background-color
|
|
||||||
&::-webkit-progress-value
|
|
||||||
background-color: $progress-value-background-color
|
|
||||||
&::-moz-progress-bar
|
|
||||||
background-color: $progress-value-background-color
|
|
||||||
&::-ms-fill
|
|
||||||
background-color: $progress-value-background-color
|
|
||||||
border: none
|
|
||||||
// Colors
|
|
||||||
@each $name, $pair in $progress-colors
|
|
||||||
$color: nth($pair, 1)
|
|
||||||
&.is-#{$name}
|
|
||||||
&::-webkit-progress-value
|
|
||||||
background-color: $color
|
|
||||||
&::-moz-progress-bar
|
|
||||||
background-color: $color
|
|
||||||
&::-ms-fill
|
|
||||||
background-color: $color
|
|
||||||
&:indeterminate
|
|
||||||
background-image: linear-gradient(to right, $color 30%, $progress-bar-background-color 30%)
|
|
||||||
|
|
||||||
&:indeterminate
|
|
||||||
animation-duration: $progress-indeterminate-duration
|
|
||||||
animation-iteration-count: infinite
|
|
||||||
animation-name: moveIndeterminate
|
|
||||||
animation-timing-function: linear
|
|
||||||
background-color: $progress-bar-background-color
|
|
||||||
background-image: linear-gradient(to right, $text 30%, $progress-bar-background-color 30%)
|
|
||||||
background-position: top left
|
|
||||||
background-repeat: no-repeat
|
|
||||||
background-size: 150% 150%
|
|
||||||
&::-webkit-progress-bar
|
|
||||||
background-color: transparent
|
|
||||||
&::-moz-progress-bar
|
|
||||||
background-color: transparent
|
|
||||||
&::-ms-fill
|
|
||||||
animation-name: none
|
|
||||||
|
|
||||||
// Sizes
|
|
||||||
&.is-small
|
|
||||||
height: $size-small
|
|
||||||
&.is-medium
|
|
||||||
height: $size-medium
|
|
||||||
&.is-large
|
|
||||||
height: $size-large
|
|
||||||
|
|
||||||
@keyframes moveIndeterminate
|
|
||||||
from
|
|
||||||
background-position: 200% 0
|
|
||||||
to
|
|
||||||
background-position: -200% 0
|
|
|
@ -1,134 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$table-color: $text-strong !default
|
|
||||||
$table-background-color: $scheme-main !default
|
|
||||||
|
|
||||||
$table-cell-border: 1px solid $border !default
|
|
||||||
$table-cell-border-width: 0 0 1px !default
|
|
||||||
$table-cell-padding: 0.5em 0.75em !default
|
|
||||||
$table-cell-heading-color: $text-strong !default
|
|
||||||
$table-cell-text-align: left !default
|
|
||||||
|
|
||||||
$table-head-cell-border-width: 0 0 2px !default
|
|
||||||
$table-head-cell-color: $text-strong !default
|
|
||||||
$table-foot-cell-border-width: 2px 0 0 !default
|
|
||||||
$table-foot-cell-color: $text-strong !default
|
|
||||||
|
|
||||||
$table-head-background-color: transparent !default
|
|
||||||
$table-body-background-color: transparent !default
|
|
||||||
$table-foot-background-color: transparent !default
|
|
||||||
|
|
||||||
$table-row-hover-background-color: $scheme-main-bis !default
|
|
||||||
|
|
||||||
$table-row-active-background-color: $primary !default
|
|
||||||
$table-row-active-color: $primary-invert !default
|
|
||||||
|
|
||||||
$table-striped-row-even-background-color: $scheme-main-bis !default
|
|
||||||
$table-striped-row-even-hover-background-color: $scheme-main-ter !default
|
|
||||||
|
|
||||||
$table-colors: $colors !default
|
|
||||||
|
|
||||||
.table
|
|
||||||
@extend %block
|
|
||||||
background-color: $table-background-color
|
|
||||||
color: $table-color
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border: $table-cell-border
|
|
||||||
border-width: $table-cell-border-width
|
|
||||||
padding: $table-cell-padding
|
|
||||||
vertical-align: top
|
|
||||||
// Colors
|
|
||||||
@each $name, $pair in $table-colors
|
|
||||||
$color: nth($pair, 1)
|
|
||||||
$color-invert: nth($pair, 2)
|
|
||||||
&.is-#{$name}
|
|
||||||
background-color: $color
|
|
||||||
border-color: $color
|
|
||||||
color: $color-invert
|
|
||||||
// Modifiers
|
|
||||||
&.is-narrow
|
|
||||||
white-space: nowrap
|
|
||||||
width: 1%
|
|
||||||
&.is-selected
|
|
||||||
background-color: $table-row-active-background-color
|
|
||||||
color: $table-row-active-color
|
|
||||||
a,
|
|
||||||
strong
|
|
||||||
color: currentColor
|
|
||||||
&.is-vcentered
|
|
||||||
vertical-align: middle
|
|
||||||
th
|
|
||||||
color: $table-cell-heading-color
|
|
||||||
&:not([align])
|
|
||||||
text-align: $table-cell-text-align
|
|
||||||
tr
|
|
||||||
&.is-selected
|
|
||||||
background-color: $table-row-active-background-color
|
|
||||||
color: $table-row-active-color
|
|
||||||
a,
|
|
||||||
strong
|
|
||||||
color: currentColor
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border-color: $table-row-active-color
|
|
||||||
color: currentColor
|
|
||||||
thead
|
|
||||||
background-color: $table-head-background-color
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border-width: $table-head-cell-border-width
|
|
||||||
color: $table-head-cell-color
|
|
||||||
tfoot
|
|
||||||
background-color: $table-foot-background-color
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border-width: $table-foot-cell-border-width
|
|
||||||
color: $table-foot-cell-color
|
|
||||||
tbody
|
|
||||||
background-color: $table-body-background-color
|
|
||||||
tr
|
|
||||||
&:last-child
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border-bottom-width: 0
|
|
||||||
// Modifiers
|
|
||||||
&.is-bordered
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border-width: 1px
|
|
||||||
tr
|
|
||||||
&:last-child
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
border-bottom-width: 1px
|
|
||||||
&.is-fullwidth
|
|
||||||
width: 100%
|
|
||||||
&.is-hoverable
|
|
||||||
tbody
|
|
||||||
tr:not(.is-selected)
|
|
||||||
&:hover
|
|
||||||
background-color: $table-row-hover-background-color
|
|
||||||
&.is-striped
|
|
||||||
tbody
|
|
||||||
tr:not(.is-selected)
|
|
||||||
&:hover
|
|
||||||
background-color: $table-row-hover-background-color
|
|
||||||
&:nth-child(even)
|
|
||||||
background-color: $table-striped-row-even-hover-background-color
|
|
||||||
&.is-narrow
|
|
||||||
td,
|
|
||||||
th
|
|
||||||
padding: 0.25em 0.5em
|
|
||||||
&.is-striped
|
|
||||||
tbody
|
|
||||||
tr:not(.is-selected)
|
|
||||||
&:nth-child(even)
|
|
||||||
background-color: $table-striped-row-even-background-color
|
|
||||||
|
|
||||||
.table-container
|
|
||||||
@extend %block
|
|
||||||
+overflow-touch
|
|
||||||
overflow: auto
|
|
||||||
overflow-y: hidden
|
|
||||||
max-width: 100%
|
|
|
@ -1,140 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$tag-background-color: $background !default
|
|
||||||
$tag-color: $text !default
|
|
||||||
$tag-radius: $radius !default
|
|
||||||
$tag-delete-margin: 1px !default
|
|
||||||
|
|
||||||
$tag-colors: $colors !default
|
|
||||||
|
|
||||||
.tags
|
|
||||||
align-items: center
|
|
||||||
display: flex
|
|
||||||
flex-wrap: wrap
|
|
||||||
justify-content: flex-start
|
|
||||||
.tag
|
|
||||||
margin-bottom: 0.5rem
|
|
||||||
&:not(:last-child)
|
|
||||||
+ltr-property("margin", 0.5rem)
|
|
||||||
&:last-child
|
|
||||||
margin-bottom: -0.5rem
|
|
||||||
&:not(:last-child)
|
|
||||||
margin-bottom: 1rem
|
|
||||||
// Sizes
|
|
||||||
&.are-medium
|
|
||||||
.tag:not(.is-normal):not(.is-large)
|
|
||||||
font-size: $size-normal
|
|
||||||
&.are-large
|
|
||||||
.tag:not(.is-normal):not(.is-medium)
|
|
||||||
font-size: $size-medium
|
|
||||||
&.is-centered
|
|
||||||
justify-content: center
|
|
||||||
.tag
|
|
||||||
margin-right: 0.25rem
|
|
||||||
margin-left: 0.25rem
|
|
||||||
&.is-right
|
|
||||||
justify-content: flex-end
|
|
||||||
.tag
|
|
||||||
&:not(:first-child)
|
|
||||||
margin-left: 0.5rem
|
|
||||||
&:not(:last-child)
|
|
||||||
margin-right: 0
|
|
||||||
&.has-addons
|
|
||||||
.tag
|
|
||||||
+ltr-property("margin", 0)
|
|
||||||
&:not(:first-child)
|
|
||||||
+ltr-property("margin", 0, false)
|
|
||||||
+ltr
|
|
||||||
border-top-left-radius: 0
|
|
||||||
border-bottom-left-radius: 0
|
|
||||||
+rtl
|
|
||||||
border-top-right-radius: 0
|
|
||||||
border-bottom-right-radius: 0
|
|
||||||
&:not(:last-child)
|
|
||||||
+ltr
|
|
||||||
border-top-right-radius: 0
|
|
||||||
border-bottom-right-radius: 0
|
|
||||||
+rtl
|
|
||||||
border-top-left-radius: 0
|
|
||||||
border-bottom-left-radius: 0
|
|
||||||
|
|
||||||
.tag:not(body)
|
|
||||||
align-items: center
|
|
||||||
background-color: $tag-background-color
|
|
||||||
border-radius: $tag-radius
|
|
||||||
color: $tag-color
|
|
||||||
display: inline-flex
|
|
||||||
font-size: $size-small
|
|
||||||
height: 2em
|
|
||||||
justify-content: center
|
|
||||||
line-height: 1.5
|
|
||||||
padding-left: 0.75em
|
|
||||||
padding-right: 0.75em
|
|
||||||
white-space: nowrap
|
|
||||||
.delete
|
|
||||||
+ltr-property("margin", 0.25rem, false)
|
|
||||||
+ltr-property("margin", -0.375rem)
|
|
||||||
// Colors
|
|
||||||
@each $name, $pair in $tag-colors
|
|
||||||
$color: nth($pair, 1)
|
|
||||||
$color-invert: nth($pair, 2)
|
|
||||||
&.is-#{$name}
|
|
||||||
background-color: $color
|
|
||||||
color: $color-invert
|
|
||||||
// If a light and dark colors are provided
|
|
||||||
@if length($pair) > 3
|
|
||||||
$color-light: nth($pair, 3)
|
|
||||||
$color-dark: nth($pair, 4)
|
|
||||||
&.is-light
|
|
||||||
background-color: $color-light
|
|
||||||
color: $color-dark
|
|
||||||
// Sizes
|
|
||||||
&.is-normal
|
|
||||||
font-size: $size-small
|
|
||||||
&.is-medium
|
|
||||||
font-size: $size-normal
|
|
||||||
&.is-large
|
|
||||||
font-size: $size-medium
|
|
||||||
.icon
|
|
||||||
&:first-child:not(:last-child)
|
|
||||||
+ltr-property("margin", -0.375em, false)
|
|
||||||
+ltr-property("margin", 0.1875em)
|
|
||||||
&:last-child:not(:first-child)
|
|
||||||
+ltr-property("margin", 0.1875em, false)
|
|
||||||
+ltr-property("margin", -0.375em)
|
|
||||||
&:first-child:last-child
|
|
||||||
+ltr-property("margin", -0.375em, false)
|
|
||||||
+ltr-property("margin", -0.375em)
|
|
||||||
// Modifiers
|
|
||||||
&.is-delete
|
|
||||||
+ltr-property("margin", $tag-delete-margin, false)
|
|
||||||
padding: 0
|
|
||||||
position: relative
|
|
||||||
width: 2em
|
|
||||||
&::before,
|
|
||||||
&::after
|
|
||||||
background-color: currentColor
|
|
||||||
content: ""
|
|
||||||
display: block
|
|
||||||
left: 50%
|
|
||||||
position: absolute
|
|
||||||
top: 50%
|
|
||||||
transform: translateX(-50%) translateY(-50%) rotate(45deg)
|
|
||||||
transform-origin: center center
|
|
||||||
&::before
|
|
||||||
height: 1px
|
|
||||||
width: 50%
|
|
||||||
&::after
|
|
||||||
height: 50%
|
|
||||||
width: 1px
|
|
||||||
&:hover,
|
|
||||||
&:focus
|
|
||||||
background-color: darken($tag-background-color, 5%)
|
|
||||||
&:active
|
|
||||||
background-color: darken($tag-background-color, 10%)
|
|
||||||
&.is-rounded
|
|
||||||
border-radius: $radius-rounded
|
|
||||||
|
|
||||||
a.tag
|
|
||||||
&:hover
|
|
||||||
text-decoration: underline
|
|
|
@ -1,70 +0,0 @@
|
||||||
@import "../utilities/mixins"
|
|
||||||
|
|
||||||
$title-color: $text-strong !default
|
|
||||||
$title-family: false !default
|
|
||||||
$title-size: $size-3 !default
|
|
||||||
$title-weight: $weight-semibold !default
|
|
||||||
$title-line-height: 1.125 !default
|
|
||||||
$title-strong-color: inherit !default
|
|
||||||
$title-strong-weight: inherit !default
|
|
||||||
$title-sub-size: 0.75em !default
|
|
||||||
$title-sup-size: 0.75em !default
|
|
||||||
|
|
||||||
$subtitle-color: $text !default
|
|
||||||
$subtitle-family: false !default
|
|
||||||
$subtitle-size: $size-5 !default
|
|
||||||
$subtitle-weight: $weight-normal !default
|
|
||||||
$subtitle-line-height: 1.25 !default
|
|
||||||
$subtitle-strong-color: $text-strong !default
|
|
||||||
$subtitle-strong-weight: $weight-semibold !default
|
|
||||||
$subtitle-negative-margin: -1.25rem !default
|
|
||||||
|
|
||||||
.title,
|
|
||||||
.subtitle
|
|
||||||
@extend %block
|
|
||||||
word-break: break-word
|
|
||||||
em,
|
|
||||||
span
|
|
||||||
font-weight: inherit
|
|
||||||
sub
|
|
||||||
font-size: $title-sub-size
|
|
||||||
sup
|
|
||||||
font-size: $title-sup-size
|
|
||||||
.tag
|
|
||||||
vertical-align: middle
|
|
||||||
|
|
||||||
.title
|
|
||||||
color: $title-color
|
|
||||||
@if $title-family
|
|
||||||
font-family: $title-family
|
|
||||||
font-size: $title-size
|
|
||||||
font-weight: $title-weight
|
|
||||||
line-height: $title-line-height
|
|
||||||
strong
|
|
||||||
color: $title-strong-color
|
|
||||||
font-weight: $title-strong-weight
|
|
||||||
&:not(.is-spaced) + .subtitle
|
|
||||||
margin-top: $subtitle-negative-margin
|
|
||||||
// Sizes
|
|
||||||
@each $size in $sizes
|
|
||||||
$i: index($sizes, $size)
|
|
||||||
&.is-#{$i}
|
|
||||||
font-size: $size
|
|
||||||
|
|
||||||
.subtitle
|
|
||||||
color: $subtitle-color
|
|
||||||
@if $subtitle-family
|
|
||||||
font-family: $subtitle-family
|
|
||||||
font-size: $subtitle-size
|
|
||||||
font-weight: $subtitle-weight
|
|
||||||
line-height: $subtitle-line-height
|
|
||||||
strong
|
|
||||||
color: $subtitle-strong-color
|
|
||||||
font-weight: $subtitle-strong-weight
|
|
||||||
&:not(.is-spaced) + .title
|
|
||||||
margin-top: $subtitle-negative-margin
|
|
||||||
// Sizes
|
|
||||||
@each $size in $sizes
|
|
||||||
$i: index($sizes, $size)
|
|
||||||
&.is-#{$i}
|
|
||||||
font-size: $size
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue