From e0476981c03074564b0952d308c7d494021d6de2 Mon Sep 17 00:00:00 2001 From: Daniel Miranda Date: Wed, 29 May 2024 15:33:22 -0700 Subject: [PATCH 01/13] Update Help Page "Notice" field from StreamBlock to Snippet (#12369) * remove old notice field * remove old notice_block template * updated to use new HelpPageNotice snippet * make text field required + tests * updated to one migration file * Updated migration file --- .../donate/factory/customblocks/__init__.py | 2 - .../factory/customblocks/notice_block.py | 20 ---- .../networkapi/donate/factory/help_page.py | 7 +- .../snippets}/__init__.py | 0 .../factory/snippets/help_page_notice.py | 22 +++++ .../0011_update_donatehelppage_notice.py | 68 +++++++++++++ .../pagemodels/customblocks/notice_block.py | 31 ------ .../networkapi/donate/pagemodels/help_page.py | 13 +-- .../networkapi/donate/snippets/__init__.py | 0 .../donate/snippets/help_page_notice.py | 53 +++++++++++ .../tests/customblocks/test_notice_block.py | 95 ------------------- .../donate/tests/snippets/__init__.py | 0 .../tests/snippets/test_help_page_notice.py | 78 +++++++++++++++ .../networkapi/donate/tests/test_help_page.py | 24 +++-- .../networkapi/donate/wagtail_hooks.py | 17 ++++ .../help_page_notice.html} | 9 +- .../templates/donate/pages/help_page.html | 4 +- 17 files changed, 270 insertions(+), 173 deletions(-) delete mode 100644 network-api/networkapi/donate/factory/customblocks/__init__.py delete mode 100644 network-api/networkapi/donate/factory/customblocks/notice_block.py rename network-api/networkapi/donate/{tests/customblocks => factory/snippets}/__init__.py (100%) create mode 100644 network-api/networkapi/donate/factory/snippets/help_page_notice.py create mode 100644 network-api/networkapi/donate/migrations/0011_update_donatehelppage_notice.py delete mode 100644 network-api/networkapi/donate/pagemodels/customblocks/notice_block.py create mode 100644 network-api/networkapi/donate/snippets/__init__.py create mode 100644 network-api/networkapi/donate/snippets/help_page_notice.py delete mode 100644 network-api/networkapi/donate/tests/customblocks/test_notice_block.py create mode 100644 network-api/networkapi/donate/tests/snippets/__init__.py create mode 100644 network-api/networkapi/donate/tests/snippets/test_help_page_notice.py rename network-api/networkapi/templates/donate/{blocks/notice_block.html => fragments/help_page_notice.html} (56%) diff --git a/network-api/networkapi/donate/factory/customblocks/__init__.py b/network-api/networkapi/donate/factory/customblocks/__init__.py deleted file mode 100644 index 8c4ff296dbf..00000000000 --- a/network-api/networkapi/donate/factory/customblocks/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# flake8: noqa -from .notice_block import NoticeBlockFactory diff --git a/network-api/networkapi/donate/factory/customblocks/notice_block.py b/network-api/networkapi/donate/factory/customblocks/notice_block.py deleted file mode 100644 index 61f2d7c9899..00000000000 --- a/network-api/networkapi/donate/factory/customblocks/notice_block.py +++ /dev/null @@ -1,20 +0,0 @@ -import wagtail_factories -from factory import Faker, LazyAttribute, SubFactory -from wagtail.rich_text import RichText - -from networkapi.donate.pagemodels.customblocks.notice_block import NoticeBlock - -description_faker = Faker("paragraphs", nb=2) - - -class NoticeBlockFactory(wagtail_factories.StructBlockFactory): - class Meta: - model = NoticeBlock - exclude = ("description_text",) - - image = SubFactory(wagtail_factories.ImageChooserBlockFactory) - image_alt_text = Faker("sentence", nb_words=4) - text = LazyAttribute(lambda o: RichText("".join([f"

{p}

" for p in o.description_text]))) - - # Lazy Values - description_text = description_faker diff --git a/network-api/networkapi/donate/factory/help_page.py b/network-api/networkapi/donate/factory/help_page.py index b5c927b34f3..985a0e2da11 100644 --- a/network-api/networkapi/donate/factory/help_page.py +++ b/network-api/networkapi/donate/factory/help_page.py @@ -1,8 +1,7 @@ -import wagtail_factories from factory import Faker, SubFactory from wagtail_factories import PageFactory -from networkapi.donate.factory.customblocks.notice_block import NoticeBlockFactory +from networkapi.donate.factory.snippets.help_page_notice import HelpPageNoticeFactory from networkapi.donate.models import DonateHelpPage, DonateLandingPage from networkapi.utility.faker import StreamfieldProvider from networkapi.utility.faker.helpers import reseed @@ -18,7 +17,7 @@ class Meta: title = Faker("sentence", nb_words=2) body = Faker("streamfield", fields=streamfield_fields) - notice = wagtail_factories.StreamFieldFactory({"notice": SubFactory(NoticeBlockFactory)}) + notice = SubFactory(HelpPageNoticeFactory) def generate(seed): @@ -26,4 +25,4 @@ def generate(seed): print("Generating a Help page") home_page = DonateLandingPage.objects.get(title="Donate Now") - DonateHelpPageFactory(parent=home_page, title="Donate Help", slug="help", notice__0="notice") + DonateHelpPageFactory(parent=home_page, title="Donate Help", slug="help") diff --git a/network-api/networkapi/donate/tests/customblocks/__init__.py b/network-api/networkapi/donate/factory/snippets/__init__.py similarity index 100% rename from network-api/networkapi/donate/tests/customblocks/__init__.py rename to network-api/networkapi/donate/factory/snippets/__init__.py diff --git a/network-api/networkapi/donate/factory/snippets/help_page_notice.py b/network-api/networkapi/donate/factory/snippets/help_page_notice.py new file mode 100644 index 00000000000..7ecce5f3952 --- /dev/null +++ b/network-api/networkapi/donate/factory/snippets/help_page_notice.py @@ -0,0 +1,22 @@ +import factory +from factory import Faker, LazyAttribute +from wagtail.rich_text import RichText +from wagtail_factories import ImageFactory + +from networkapi.donate.snippets.help_page_notice import HelpPageNotice + +notice_text_contents = Faker("paragraph", nb_sentences=3, variable_nb_sentences=False) + + +class HelpPageNoticeFactory(factory.django.DjangoModelFactory): + class Meta: + model = HelpPageNotice + exclude = ("notice_text",) + + name = Faker("sentence", nb_words=3) + text = LazyAttribute(lambda o: RichText(f"

{o.notice_text}

")) + notice_image = factory.SubFactory(ImageFactory) + notice_image_alt_text = Faker("sentence", nb_words=4) + + # Lazy Values + notice_text = notice_text_contents diff --git a/network-api/networkapi/donate/migrations/0011_update_donatehelppage_notice.py b/network-api/networkapi/donate/migrations/0011_update_donatehelppage_notice.py new file mode 100644 index 00000000000..01b06bde38f --- /dev/null +++ b/network-api/networkapi/donate/migrations/0011_update_donatehelppage_notice.py @@ -0,0 +1,68 @@ +# Generated by Django 4.2.11 on 2024-05-22 22:22 + +import uuid + +import django.db.models.deletion +import wagtail.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("donate", "0010_make_link_to_required_in_link_block"), + ] + + operations = [ + migrations.RemoveField( + model_name="donatehelppage", + name="notice", + ), + migrations.CreateModel( + name="HelpPageNotice", + fields=[ + ("id", models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), + ("translation_key", models.UUIDField(default=uuid.uuid4, editable=False)), + ("name", models.CharField(help_text="What will this notice be called in the CMS?", max_length=50)), + ("text", wagtail.fields.RichTextField()), + ( + "notice_image_alt_text", + models.CharField(blank=True, help_text="Image description (for screen readers).", max_length=50), + ), + ( + "locale", + models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.PROTECT, + related_name="+", + to="wagtailcore.locale", + ), + ), + ( + "notice_image", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="wagtailimages.image", + verbose_name="Notice Image", + ), + ), + ], + options={ + "abstract": False, + "unique_together": {("translation_key", "locale")}, + }, + ), + migrations.AddField( + model_name="donatehelppage", + name="notice", + field=models.ForeignKey( + blank=True, + help_text="Optional notice that will render at the top of the page.", + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="donate.helppagenotice", + ), + ), + ] diff --git a/network-api/networkapi/donate/pagemodels/customblocks/notice_block.py b/network-api/networkapi/donate/pagemodels/customblocks/notice_block.py deleted file mode 100644 index 022fc110346..00000000000 --- a/network-api/networkapi/donate/pagemodels/customblocks/notice_block.py +++ /dev/null @@ -1,31 +0,0 @@ -from django.forms.utils import ErrorList -from wagtail import blocks -from wagtail.blocks.struct_block import StructBlockValidationError -from wagtail.images.blocks import ImageChooserBlock - -from networkapi.wagtailpages.pagemodels.customblocks.base_rich_text_options import ( - base_rich_text_options, -) - - -class NoticeBlock(blocks.StructBlock): - image = ImageChooserBlock(required=False) - image_alt_text = blocks.CharBlock(required=False, help_text="Image description (for screen readers).") - text = blocks.RichTextBlock(features=base_rich_text_options) - - class Meta: - icon = "doc-full" - template = "donate/blocks/notice_block.html" - - def clean(self, value): - cleaned_data = super().clean(value) - errors = {} - - if cleaned_data["image"] and not cleaned_data["image_alt_text"]: - errors["image"] = ErrorList(["Image must include alt text."]) - if cleaned_data["image_alt_text"] and not cleaned_data["image"]: - errors["image_alt_text"] = ErrorList(["Alt text must have an associated image."]) - if errors: - raise StructBlockValidationError(block_errors=errors) - - return cleaned_data diff --git a/network-api/networkapi/donate/pagemodels/help_page.py b/network-api/networkapi/donate/pagemodels/help_page.py index c4a32ed2f52..c7a7b4272fb 100644 --- a/network-api/networkapi/donate/pagemodels/help_page.py +++ b/network-api/networkapi/donate/pagemodels/help_page.py @@ -1,12 +1,13 @@ from urllib.parse import urlencode +from django.db import models from wagtail.admin.panels import FieldPanel from wagtail.fields import StreamField from wagtail.models import Page from wagtail_localize.fields import SynchronizedField, TranslatableField from networkapi.donate.models import BaseDonationPage -from networkapi.donate.pagemodels.customblocks.notice_block import NoticeBlock +from networkapi.donate.snippets.help_page_notice import HelpPageNotice from networkapi.wagtailpages.pagemodels.customblocks.base_fields import base_fields @@ -19,12 +20,12 @@ class DonateHelpPage(BaseDonationPage): max_count = 1 - notice = StreamField( - [("notice", NoticeBlock())], - help_text="Optional notice that will render at the top of the page.", + notice = models.ForeignKey( + HelpPageNotice, + null=True, blank=True, - max_num=1, - use_json_field=True, + on_delete=models.SET_NULL, + help_text="Optional notice that will render at the top of the page.", ) body = StreamField(base_fields, blank=True, use_json_field=True) diff --git a/network-api/networkapi/donate/snippets/__init__.py b/network-api/networkapi/donate/snippets/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/network-api/networkapi/donate/snippets/help_page_notice.py b/network-api/networkapi/donate/snippets/help_page_notice.py new file mode 100644 index 00000000000..fd1bb3e2386 --- /dev/null +++ b/network-api/networkapi/donate/snippets/help_page_notice.py @@ -0,0 +1,53 @@ +from django.core.exceptions import ValidationError +from django.db import models +from wagtail.admin.panels import FieldPanel +from wagtail.fields import RichTextField +from wagtail.models import TranslatableMixin +from wagtail_localize.fields import SynchronizedField, TranslatableField + +from networkapi.wagtailpages.pagemodels.customblocks.base_rich_text_options import ( + base_rich_text_options, +) + + +class HelpPageNotice(TranslatableMixin, models.Model): + name = models.CharField(max_length=50, help_text="What will this notice be called in the CMS?") + + text = RichTextField( + features=base_rich_text_options, + blank=False, + ) + notice_image = models.ForeignKey( + "wagtailimages.Image", + null=True, + blank=True, + on_delete=models.SET_NULL, + verbose_name="Notice Image", + ) + notice_image_alt_text = models.CharField( + max_length=50, blank=True, help_text="Image description (for screen readers)." + ) + + panels = [ + FieldPanel("name"), + FieldPanel("text"), + FieldPanel("notice_image"), + FieldPanel("notice_image_alt_text"), + ] + + translatable_fields = [ + SynchronizedField("name"), + TranslatableField("text"), + SynchronizedField("notice_image"), + TranslatableField("notice_image_alt_text"), + ] + + def __str__(self): + return self.name + + def clean(self): + super().clean() + if self.notice_image and not self.notice_image_alt_text: + raise ValidationError({"notice_image_alt_text": "Image must include alt text."}) + if self.notice_image_alt_text and not self.notice_image: + raise ValidationError({"notice_image": "Alt text must have an associated image."}) diff --git a/network-api/networkapi/donate/tests/customblocks/test_notice_block.py b/network-api/networkapi/donate/tests/customblocks/test_notice_block.py deleted file mode 100644 index 2445dbf54d6..00000000000 --- a/network-api/networkapi/donate/tests/customblocks/test_notice_block.py +++ /dev/null @@ -1,95 +0,0 @@ -from django.test import TestCase -from wagtail import rich_text -from wagtail.blocks.struct_block import StructBlockValidationError -from wagtail.images.tests.utils import Image, get_test_image_file - -from networkapi.donate.factory.customblocks.notice_block import NoticeBlockFactory -from networkapi.donate.pagemodels.customblocks.notice_block import NoticeBlock - - -class NoticeBlockTest(TestCase): - def setUp(self): - self.notice_block = NoticeBlock() - - def test_notice_block_factory(self): - """ - Testing that the factory can successfully create a valid NoticeBlock. - """ - notice_block_factory_default_values = NoticeBlockFactory() - - is_valid = self.notice_block.clean(notice_block_factory_default_values) - - self.assertTrue(is_valid) - - def test_valid_notice_block(self): - """ - Testing that a notice block with all fields is valid. - """ - value = { - "image": Image.objects.create(title="Test Image", file=get_test_image_file()), - "image_alt_text": "Alt text", - "text": rich_text.RichText("

Some content

"), - } - - is_valid = self.notice_block.clean(value) - - self.assertTrue(is_valid) - - def test_image_without_alt_text_raises_error(self): - """ - Testing that a notice block with an image but no alt text is invalid. - """ - value = { - "image": Image.objects.create(title="Test Image", file=get_test_image_file()), - "image_alt_text": "", - "text": rich_text.RichText("

Some content

"), - } - - with self.assertRaises(StructBlockValidationError) as catcher: - self.notice_block.clean(value) - exceptions = catcher.exception.as_json_data()["blockErrors"] - self.assertCountEqual(exceptions["image"]["messages"], ["Image must include alt text."]) - - def test_alt_text_without_image_raises_error(self): - """ - Testing that a notice block with alt text but no image is invalid. - """ - value = { - "image": None, - "image_alt_text": "Alt text", - "text": rich_text.RichText("

Some content

"), - } - - with self.assertRaises(StructBlockValidationError) as catcher: - self.notice_block.clean(value) - exceptions = catcher.exception.as_json_data()["blockErrors"] - self.assertCountEqual(exceptions["image_alt_text"]["messages"], ["Alt text must have an associated image."]) - - def test_notice_text_field_is_required(self): - """ - Testing that a notice block with no body text is invalid. - """ - value = { - "image": Image.objects.create(title="Test Image", file=get_test_image_file()), - "image_alt_text": "Alt text", - "text": rich_text.RichText(""), - } - - with self.assertRaises(StructBlockValidationError) as catcher: - self.notice_block.clean(value) - exceptions = catcher.exception.as_json_data()["blockErrors"] - self.assertCountEqual(exceptions["text"]["messages"], ["This field is required."]) - - def test_valid_block_without_image_and_alt_text(self): - """ - Testing that a notice block with only text is valid. - """ - value = { - "image": None, - "image_alt_text": "", - "text": rich_text.RichText("

Some content

"), - } - - is_valid = self.notice_block.clean(value) - - self.assertTrue(is_valid) diff --git a/network-api/networkapi/donate/tests/snippets/__init__.py b/network-api/networkapi/donate/tests/snippets/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/network-api/networkapi/donate/tests/snippets/test_help_page_notice.py b/network-api/networkapi/donate/tests/snippets/test_help_page_notice.py new file mode 100644 index 00000000000..16b3ea92e2b --- /dev/null +++ b/network-api/networkapi/donate/tests/snippets/test_help_page_notice.py @@ -0,0 +1,78 @@ +from django.core.exceptions import ValidationError +from django.test import TestCase + +from networkapi.donate.factory.snippets.help_page_notice import HelpPageNoticeFactory +from networkapi.donate.snippets.help_page_notice import HelpPageNotice +from networkapi.wagtailpages.factory.image_factory import ImageFactory + + +class HelpPageNoticeTest(TestCase): + def setUp(self): + self.notice = HelpPageNotice() + + def test_help_page_notice_factory(self): + """ + Testing that the factory can successfully create a valid HelpPageNotice. + """ + HelpPageNoticeFactory() + + def test_valid_help_page_notice(self): + """ + Testing that a HelpPageNotice with all fields is valid. + """ + notice = HelpPageNotice( + name="Test Notice", + text="

Some content

", + notice_image=ImageFactory(), + notice_image_alt_text="Alt text", + ) + + # Clean should not raise any validation error + notice.full_clean() + + def test_image_without_alt_text_raises_error(self): + """ + Testing that a HelpPageNotice with an image but no alt text is invalid. + """ + notice = HelpPageNotice( + name="Test Notice", text="

Some content

", notice_image=ImageFactory(), notice_image_alt_text="" + ) + + with self.assertRaises(ValidationError) as context: + notice.full_clean() + self.assertIn("Image must include alt text.", str(context.exception)) + + def test_alt_text_without_image_raises_error(self): + """ + Testing that a HelpPageNotice with alt text but no image is invalid. + """ + notice = HelpPageNotice( + name="Test Notice", text="

Some content

", notice_image=None, notice_image_alt_text="Alt text" + ) + + with self.assertRaises(ValidationError) as context: + notice.full_clean() + self.assertIn("Alt text must have an associated image.", str(context.exception)) + + def test_valid_notice_without_image_and_alt_text(self): + """ + Testing that a HelpPageNotice with only text is valid. + """ + notice = HelpPageNotice( + name="Test Notice", text="

Some content

", notice_image=None, notice_image_alt_text="" + ) + + # Clean should not raise any validation error + notice.full_clean() + + def test_notice_text_field_is_required(self): + """ + Testing that a HelpPageNotice with no body text is invalid. + """ + notice = HelpPageNotice( + name="Test Notice", text="", notice_image=ImageFactory(), notice_image_alt_text="Alt text" + ) + + with self.assertRaises(ValidationError) as context: + notice.full_clean() + self.assertIn("This field cannot be blank.", str(context.exception)) diff --git a/network-api/networkapi/donate/tests/test_help_page.py b/network-api/networkapi/donate/tests/test_help_page.py index 02835454aad..3d809b19570 100644 --- a/network-api/networkapi/donate/tests/test_help_page.py +++ b/network-api/networkapi/donate/tests/test_help_page.py @@ -2,6 +2,9 @@ from networkapi.donate import models as pagemodels from networkapi.donate.factory import help_page as help_page_factories +from networkapi.donate.factory.snippets import ( + help_page_notice as help_page_notice_factories, +) from networkapi.wagtailpages.tests import base as test_base @@ -22,7 +25,6 @@ def setUpTestData(cls): ) cls.donate_help_page = help_page_factories.DonateHelpPageFactory( parent=cls.donate_landing_page, - notice__0="notice", ) def test_parent_page_types(self): @@ -66,12 +68,6 @@ def test_template(self): template_name="donate/pages/help_page.html", ) - def test_help_page_notice_field(self): - """ - Asserts that a 'notice' block was created in the 'notice' field by the factory. - """ - self.assertEqual(self.donate_help_page.notice[0].block_type, "notice") - def test_thank_you_url(self): """ Testing that the "thank_you_url" is correctly added to the page context. @@ -94,3 +90,17 @@ def test_thank_you_url_with_existing_query_params(self): expected_thank_you_url = page_url + "&thank_you=true" self.assertEqual(response.context["thank_you_url"], expected_thank_you_url) + + def test_page_displays_help_page_notice(self): + """ + Test that the DonateHelpPage correctly displays the HelpPageNotice. + """ + notice_text_content = "

Test Notice Content

" + help_page_notice = help_page_notice_factories.HelpPageNoticeFactory(text=notice_text_content) + self.donate_help_page.notice = help_page_notice + self.donate_help_page.save() + + url = self.donate_help_page.get_url() + response = self.client.get(url) + + self.assertContains(response, notice_text_content) diff --git a/network-api/networkapi/donate/wagtail_hooks.py b/network-api/networkapi/donate/wagtail_hooks.py index fea028a8097..8e4c997a2f4 100644 --- a/network-api/networkapi/donate/wagtail_hooks.py +++ b/network-api/networkapi/donate/wagtail_hooks.py @@ -3,6 +3,7 @@ from wagtail.snippets.models import register_snippet from wagtail.snippets.views.snippets import SnippetViewSet, SnippetViewSetGroup +from networkapi.donate.snippets.help_page_notice import HelpPageNotice from networkapi.donate_banner.models import DonateBanner from networkapi.wagtailcustomization.views.snippet_chooser import ( DefaultLocaleSnippetChooserViewSet, @@ -42,6 +43,21 @@ def register_donate_banner_chooser_viewset(): ) +class HelpPageNoticeViewSet(SnippetViewSet): + model = HelpPageNotice + icon = "form" + menu_label = "Help Page Notices" + list_display = ( + "name", + UpdatedAtColumn(), + ) + search_fields = ( + "name", + "text", + ) + ordering = ("name",) + + class DonationModalSnippetViewSet(SnippetViewSet): model = DonationModal icon = "newspaper" @@ -65,6 +81,7 @@ class DonateViewSetGroup(SnippetViewSetGroup): items = ( DonateBannerViewSet, DonationModalSnippetViewSet, + HelpPageNoticeViewSet, ) menu_icon = "heart" menu_label = "Donate" diff --git a/network-api/networkapi/templates/donate/blocks/notice_block.html b/network-api/networkapi/templates/donate/fragments/help_page_notice.html similarity index 56% rename from network-api/networkapi/templates/donate/blocks/notice_block.html rename to network-api/networkapi/templates/donate/fragments/help_page_notice.html index 798d3b91caf..7f8aa4f8eed 100644 --- a/network-api/networkapi/templates/donate/blocks/notice_block.html +++ b/network-api/networkapi/templates/donate/fragments/help_page_notice.html @@ -1,14 +1,13 @@ - {% load l10n wagtailcore_tags wagtailimages_tags %}
- {% if value.image %} + {% if notice.notice_image %}
- {% image value.image fill-100x100-c100 format-jpeg as img %} - {{ value.image_alt_text }} + {% image notice.notice_image fill-100x100-c100 format-jpeg as img %} + {{ notice.image_alt_text }}
{% endif %}
- {{ value.text|richtext }} + {{ notice.text|richtext }}
diff --git a/network-api/networkapi/templates/donate/pages/help_page.html b/network-api/networkapi/templates/donate/pages/help_page.html index 50e2e862177..910d4b84f9e 100644 --- a/network-api/networkapi/templates/donate/pages/help_page.html +++ b/network-api/networkapi/templates/donate/pages/help_page.html @@ -12,9 +12,7 @@ diff --git a/network-api/networkapi/templates/fragments/footer.html b/network-api/networkapi/templates/fragments/footer.html index 0b11610c5d9..1fa027f913a 100644 --- a/network-api/networkapi/templates/fragments/footer.html +++ b/network-api/networkapi/templates/fragments/footer.html @@ -21,6 +21,7 @@ data-button-text="{% trans "Sign up" context "Submit button for newsletter signup form" %}" data-cta-header="{% trans "Help shape the future of the web for the public good." %}" data-cta-description="

{% trans "Join our Mozilla News email list to get action alerts & internet tips right to your inbox." %}

" + data-cta-privacy-notice="" > diff --git a/network-api/networkapi/templates/fragments/primary_nav.html b/network-api/networkapi/templates/fragments/primary_nav.html index 1f662354957..5fd859a4ad9 100644 --- a/network-api/networkapi/templates/fragments/primary_nav.html +++ b/network-api/networkapi/templates/fragments/primary_nav.html @@ -88,6 +88,7 @@ data-button-text="{% trans "Sign up" context "Submit button for newsletter signup form" %}" data-cta-header="{% trans "Help shape the future of the web for the public good." %}" data-cta-description="

{% trans "Join our Mozilla News email list to get action alerts & internet tips right to your inbox." %}

" + data-cta-privacy-notice="" >
diff --git a/network-api/networkapi/wagtailpages/migrations/0137_blogsignup_privacy_notice_cta_privacy_notice.py b/network-api/networkapi/wagtailpages/migrations/0137_blogsignup_privacy_notice_cta_privacy_notice.py new file mode 100644 index 00000000000..8624aace8f1 --- /dev/null +++ b/network-api/networkapi/wagtailpages/migrations/0137_blogsignup_privacy_notice_cta_privacy_notice.py @@ -0,0 +1,30 @@ +# Generated by Django 4.2.11 on 2024-05-28 18:33 + +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailpages", "0136_alter_donationmodal_body_richtext"), + ] + + operations = [ + migrations.AddField( + model_name="blogsignup", + name="privacy_notice", + field=wagtail.fields.RichTextField( + blank=True, + help_text="This optional privacy notice field will overwrite the default privacy notice text. If this field is left blank, the default privacy notice text is used.", + ), + ), + migrations.AddField( + model_name="cta", + name="privacy_notice", + field=wagtail.fields.RichTextField( + blank=True, + help_text="This optional privacy notice field will overwrite the default privacy notice text. If this field is left blank, the default privacy notice text is used.", + ), + ), + ] diff --git a/network-api/networkapi/wagtailpages/pagemodels/campaigns.py b/network-api/networkapi/wagtailpages/pagemodels/campaigns.py index fc2d3953472..f311b00d20c 100644 --- a/network-api/networkapi/wagtailpages/pagemodels/campaigns.py +++ b/network-api/networkapi/wagtailpages/pagemodels/campaigns.py @@ -12,6 +12,7 @@ from ..utils import get_content_related_by_tag, get_page_tree_information from .base import PrimaryPage +from .customblocks.base_rich_text_options import base_rich_text_options from .mixin.foundation_metadata import FoundationMetadataPageMixin from .modular import MiniSiteNameSpace @@ -31,6 +32,13 @@ class CTABase(models.Model): description = RichTextField(help_text="Body (richtext) of component", blank=True) + privacy_notice = RichTextField( + help_text="This optional privacy notice field will overwrite the default privacy notice text. " + "If this field is left blank, the default privacy notice text is used.", + features=base_rich_text_options, + blank=True, + ) + newsletter = models.CharField( max_length=100, help_text="The (pre-existing) newsletter to sign up for", @@ -41,6 +49,7 @@ class CTABase(models.Model): TranslatableField("name"), TranslatableField("header"), TranslatableField("description"), + TranslatableField("privacy_notice"), SynchronizedField("newsletter"), ] diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html index ee046230cdc..806fc93ad00 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html @@ -72,7 +72,8 @@ data-signup-id="{{ localized_signup.id }}" data-cta-header="{{ localized_signup.header | escape }}" data-cta-description="{{ localized_signup.description | escape }}" - data-ask-name="{{ localized_signup.ask_name }}"> + data-ask-name="{{ localized_signup.ask_name }}" + data-cta-privacy-notice="{{ localized_signup.privacy_notice|escape }}">
{% endwith %} {% endif %} diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/blog_newsletter_signup_block.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/blog_newsletter_signup_block.html index cc6732fd7e4..0804ac45e44 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/blog_newsletter_signup_block.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/blog_newsletter_signup_block.html @@ -12,5 +12,6 @@ data-button-text="{% trans "Sign up" context "Submit button for newsletter signup form" %}" data-cta-header="{{ self.signup.header | escape }}" data-cta-description="{{ self.signup.description | escape }}" + data-cta-privacy-notice="{{ self.signup.privacy_notice | escape }}" > {% endblock block_content %} diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/newsletter_signup_block.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/newsletter_signup_block.html index cf694d91fbc..74ecad58aa3 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/newsletter_signup_block.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/newsletter_signup_block.html @@ -14,6 +14,7 @@ data-signup-id="{{ self.signup.id | unlocalize }}" data-cta-header="{{ self.signup.header | escape }}" data-cta-description="{{ self.signup.description | escape }}" + data-cta-privacy-notice="{{ self.signup.privacy_notice | escape }}" data-ask-name="{{ self.signup.ask_name }}" data-button-cta-event="newsletter-signup" > diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/formassembly_body.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/formassembly_body.html index 77acbadb885..50aa47d1fd9 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/formassembly_body.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/formassembly_body.html @@ -1,4 +1,4 @@ -{% load i18n %} +{% load i18n wagtailcore_tags %} {% comment %} *** IMPORTANT *** @@ -13,7 +13,7 @@ - Go to petition.html and look for this line {% include "../../fragments/formassembly_body.html" - Update the variable names to they match the new FormAssembly field names - Plug in those variables into corresponding form fields in formassembly_body.html - + 4. If form field names are changed: (Field ref: https://mozillafoundation.tfaforms.net/forms/builder/5.0.0/9 and click on "OUTLINE" tab) - Update the bottom section of formassembly_override.scss to reflect new field names @@ -39,6 +39,9 @@ 9. Update the revision note on the next line. Revision number can be found on https://mozillafoundation.tfaforms.net/versions/index/9 +10. Update the privacy_notice value to include an {%if %} tag and default value + - {% if privacy_notice %}{% blocktrans with privacy_notice=privacy_notice|richtext %}{{ privacy_notice }}{% endblocktrans %}{% else %}{% blocktrans with link="https://www.mozilla.org/privacy/websites/" %}I’m okay with Mozilla handling my info as explained in this Privacy Notice.{% endblocktrans %}{% endif %} + The code snippet below is based on FormAssembly form revision #32 *** NOTE *** @@ -318,7 +321,7 @@ {% endif %}
-
+

diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/newsletter-signup-box.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/newsletter-signup-box.html index 8588904f348..bb04711c3bf 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/newsletter-signup-box.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/newsletter-signup-box.html @@ -8,6 +8,7 @@ data-button-text="{% trans "Subscribe" context "Submit button for newsletter signup form" %}" data-cta-header="{% trans "Subscribe to our newsletter" %}" data-cta-description="

{% trans "Help shape the future of the web for the public good. Join our Mozilla News email list to get action alerts & internet tips right to your inbox." %}

" + data-cta-privacy-notice="" >
{% if show_socials %}
diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/take_action.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/take_action.html index 62c75021cf9..75b1f57aa85 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/take_action.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/take_action.html @@ -35,6 +35,7 @@

{{ page.take_action_title }}

data-button-text="{% trans "Sign up" context "Submit button for newsletter signup form" %}" data-cta-header="{% trans "Help shape the future of the web for the public good." %}" data-cta-description="

{% trans "Join our Mozilla News email list to get action alerts & internet tips right to your inbox." %}

" + data-cta-privacy-notice="" >
diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_reporter_page.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_reporter_page.html index 1a9c4eb0160..b0bf16c57d7 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_reporter_page.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_reporter_page.html @@ -81,6 +81,7 @@

{% trans "With the RegretsReporter extension, you can data-button-text="{% trans "Sign up" context "Submit button for newsletter signup form" %}" data-cta-header="{% trans "To stay updated on this campaign and our other work, sign up for Mozilla’s newsletter." %}" data-cta-description="" + data-cta-privacy-notice="" > diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/tags/cta/petition.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/tags/cta/petition.html index 9f3041f2578..6b52e36c8c3 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/tags/cta/petition.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/tags/cta/petition.html @@ -29,7 +29,7 @@

{{ cta.header | escape }}
We are inncluding tfa_* in the variable name to make it clear where the value should be plugged in. For field name reference, see https://mozillafoundation.tfaforms.net/forms/definition/9 {% endcomment %} - {% include "../../fragments/formassembly_body.html" with csp_nonce=csp_nonce show_country_field=cta.show_country_field show_postal_code_field=cta.show_postal_code_field show_comment_field=cta.show_comment_field campaign_id_tfa_1=cta.campaign_id source_url_tfa_498=source_url lang_tfa_499=LANGUAGE_CODE thank_you_url_tfa_500=thank_you_url %} + {% include "../../fragments/formassembly_body.html" with csp_nonce=csp_nonce show_country_field=cta.show_country_field show_postal_code_field=cta.show_postal_code_field show_comment_field=cta.show_comment_field campaign_id_tfa_1=cta.campaign_id source_url_tfa_498=source_url lang_tfa_499=LANGUAGE_CODE thank_you_url_tfa_500=thank_you_url privacy_notice=cta.privacy_notice %} {% else %}
+ data-cta-description="{{ cta.description | escape }}" + data-cta-privacy-notice="{{ cta.privacy_notice | escape }}">
diff --git a/source/js/components/newsletter-signup/atoms/privacy-notice.jsx b/source/js/components/newsletter-signup/atoms/privacy-notice.jsx new file mode 100644 index 00000000000..8142f84c35a --- /dev/null +++ b/source/js/components/newsletter-signup/atoms/privacy-notice.jsx @@ -0,0 +1,32 @@ +import React from "react"; +import { getText } from "../../petition/locales"; +import PropTypes from "prop-types"; + +const PrivacyNotice = ({ content, classes }) => { + //[TODO] Investigate removing the legacy richtext template which renders an empty rich-text div wrapper + // Jira TP1-601 / Github Issue #12285 https://github.com/MozillaFoundation/foundation.mozilla.org/issues/12285 + if (!content || content == "
") { + content = getText( + `I'm okay with Mozilla handling my info as explained in this Privacy Notice` + ); + } + if (typeof content === "string") { + return ( + + ); + } + + return {content}; +}; + +PrivacyNotice.propTypes = { + content: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired, + classes: PropTypes.string, +}; + +export default PrivacyNotice; diff --git a/source/js/components/newsletter-signup/organisms/default-layout-signup.jsx b/source/js/components/newsletter-signup/organisms/default-layout-signup.jsx index c879282f027..7979025bdf1 100644 --- a/source/js/components/newsletter-signup/organisms/default-layout-signup.jsx +++ b/source/js/components/newsletter-signup/organisms/default-layout-signup.jsx @@ -3,6 +3,7 @@ import PropTypes from "prop-types"; import classNames from "classnames"; import Heading from "../atoms/heading.jsx"; import Description from "../atoms/description.jsx"; +import PrivacyNotice from "../atoms/privacy-notice.jsx"; import InputText from "../atoms/input-text.jsx"; import Select from "../atoms/select.jsx"; import InputCheckboxWithLabel from "../molecules/input-checkbox-with-label.jsx"; @@ -156,6 +157,15 @@ class DefaultSignupForm extends Component { ); } + renderPrivacyNotice() { + return ( + + ); + } + renderAPIErrorMessage() { if (!this.props.apiError) return null; @@ -265,9 +275,7 @@ class DefaultSignupForm extends Component { this.handlePrivacyChange(event)} diff --git a/source/sass/formassembly-override.scss b/source/sass/formassembly-override.scss index 6de054a1a05..4d060d375b4 100644 --- a/source/sass/formassembly-override.scss +++ b/source/sass/formassembly-override.scss @@ -23,6 +23,15 @@ $input-font-size: 1.25rem !important; label { font-family: $font-family-sans-serif; margin-bottom: 0; + .rich-text { + display: inline-block; + p { + display: inline-block; + //match styling for richtext fields like privacy_notice + color: #444; + font-size: 16px; + } + } } } From f7ed1056ee98a8a41a8c4ed554d1e599c35d11ed Mon Sep 17 00:00:00 2001 From: AdalbertoMoz Date: Fri, 31 May 2024 15:12:56 -0600 Subject: [PATCH 07/13] Localise Featured Video Post on the Blog Index --- .../wagtailpages/pagemodels/blog/blog_index.py | 11 +++++++++++ .../templates/wagtailpages/blog_index_page.html | 12 +++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/network-api/networkapi/wagtailpages/pagemodels/blog/blog_index.py b/network-api/networkapi/wagtailpages/pagemodels/blog/blog_index.py index 063b113dbe7..559a1725cea 100644 --- a/network-api/networkapi/wagtailpages/pagemodels/blog/blog_index.py +++ b/network-api/networkapi/wagtailpages/pagemodels/blog/blog_index.py @@ -511,3 +511,14 @@ def localised_featured_pages(self): "featured_pages_relationship__sort_order" ) return localize_queryset(featured_blog_pages, preserve_order=True) + + @property + def localised_featured_video_post(self): + featured_post = self.featured_video_post.first() + + if not featured_post: + return None + + featured_post.blog_page = featured_post.blog_page.localized + + return featured_post diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/blog_index_page.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/blog_index_page.html index 23be5bd6f1a..5639066ceaf 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/blog_index_page.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/blog_index_page.html @@ -64,11 +64,13 @@

{% endif %} {% endfor %} - {% for video_post in page.specific.featured_video_post.all %} -
- {% include "fragments/blog_index_feature.html" with blog_page=video_post.blog_page video_url=video_post.video_url %} -
- {% endfor %} + {% if page.localised_featured_video_post %} + {% with localized_post=page.localised_featured_video_post %} +
+ {% include "fragments/blog_index_feature.html" with blog_page=localized_post.blog_page video_url=localized_post.video_url %} +
+ {% endwith %} + {% endif %} {% endwith %} From ea9c3d3b1119e8ae3368406f106e69999705410a Mon Sep 17 00:00:00 2001 From: Rob DiVincenzo Date: Tue, 4 Jun 2024 01:58:38 -0400 Subject: [PATCH 08/13] Adjust uneven block spacing for mozfest (#12373) * Remove extra spacing from image feature block * Remove extra spacing from carousel text block * Remove auto paragraph spacer portion of #11862, opting for manual spacer blocks instead --------- Co-authored-by: Daniel Miranda --- .../templates/fragments/blocks/carousel_text_block.html | 2 +- .../mozfest/templates/mozfest/mozfest_homepage.html | 4 ---- .../mozfest/templates/mozfest/mozfest_landing_page.html | 4 ---- .../mozfest/templates/partials/streamfield.html | 7 ------- .../mozfest/templates/partials/streamfield_spacer.html | 9 --------- .../wagtailpages/blocks/image_feature_block.html | 2 +- 6 files changed, 2 insertions(+), 26 deletions(-) delete mode 100644 network-api/networkapi/mozfest/templates/partials/streamfield_spacer.html diff --git a/network-api/networkapi/mozfest/templates/fragments/blocks/carousel_text_block.html b/network-api/networkapi/mozfest/templates/fragments/blocks/carousel_text_block.html index 02ffbaf3994..b2e4d69a036 100644 --- a/network-api/networkapi/mozfest/templates/fragments/blocks/carousel_text_block.html +++ b/network-api/networkapi/mozfest/templates/fragments/blocks/carousel_text_block.html @@ -1,7 +1,7 @@ {% load wagtailcore_tags wagtailimages_tags %} {% block block_content %} -
+
diff --git a/network-api/networkapi/mozfest/templates/mozfest/mozfest_homepage.html b/network-api/networkapi/mozfest/templates/mozfest/mozfest_homepage.html index a41181cfdb7..ada108c9dda 100644 --- a/network-api/networkapi/mozfest/templates/mozfest/mozfest_homepage.html +++ b/network-api/networkapi/mozfest/templates/mozfest/mozfest_homepage.html @@ -15,10 +15,6 @@ {% include "partials/primary_hero.html" with page=page %} {% endblock %} -{% block streamfield %} - {% include "partials/streamfield_spacer.html" %} -{% endblock streamfield %} - {% block bootstrap_width %}col-lg-12{% endblock bootstrap_width %} {% block footer_block %} diff --git a/network-api/networkapi/mozfest/templates/mozfest/mozfest_landing_page.html b/network-api/networkapi/mozfest/templates/mozfest/mozfest_landing_page.html index 0afbb989723..06486a599af 100644 --- a/network-api/networkapi/mozfest/templates/mozfest/mozfest_landing_page.html +++ b/network-api/networkapi/mozfest/templates/mozfest/mozfest_landing_page.html @@ -15,10 +15,6 @@ {% include "partials/primary_hero.html" with page=page %} {% endblock hero_guts %} -{% block streamfield %} - {% include "partials/streamfield_spacer.html" %} -{% endblock streamfield %} - {% block bootstrap_width %}col-lg-12{% endblock bootstrap_width %} {% block footer_block %} diff --git a/network-api/networkapi/mozfest/templates/partials/streamfield.html b/network-api/networkapi/mozfest/templates/partials/streamfield.html index 4c4ffaa429c..e90f5c8b889 100644 --- a/network-api/networkapi/mozfest/templates/partials/streamfield.html +++ b/network-api/networkapi/mozfest/templates/partials/streamfield.html @@ -1,12 +1,5 @@ {% load wagtailcore_tags %} {% for block in page.body %} - {# optionally render a pre and post paragraph spacer for landing_page / homepage page types with dark sections #} - {% if block.block_type == 'paragraph' %} - {% block pre_paragraph_spacer %}{% endblock pre_paragraph_spacer %} - {% endif %} {% include_block block with parent_page=page %} - {% if block.block_type == 'paragraph' %} - {% block post_paragraph_spacer %}{% endblock post_paragraph_spacer %} - {% endif %} {% endfor %} \ No newline at end of file diff --git a/network-api/networkapi/mozfest/templates/partials/streamfield_spacer.html b/network-api/networkapi/mozfest/templates/partials/streamfield_spacer.html deleted file mode 100644 index 139660a2b01..00000000000 --- a/network-api/networkapi/mozfest/templates/partials/streamfield_spacer.html +++ /dev/null @@ -1,9 +0,0 @@ -{% extends "./streamfield.html" %} - -{% block pre_paragraph_spacer %} -
-{% endblock pre_paragraph_spacer %} - -{% block post_paragraph_spacer %} -
-{% endblock post_paragraph_spacer %} \ No newline at end of file diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/image_feature_block.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/image_feature_block.html index 24e50d616d7..32e60603069 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/image_feature_block.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/image_feature_block.html @@ -2,7 +2,7 @@ {% load wagtailcore_tags wagtailimages_tags %} {% block block_content %} -
+
From ba385d7834b73140e0e6e3d04799688a6f5c1de1 Mon Sep 17 00:00:00 2001 From: Adalberto Vazquez Date: Wed, 5 Jun 2024 09:56:03 -0600 Subject: [PATCH 09/13] Remove .localized and .specific properties inside the blog_index_feature template (#12428) * Remove .localized property inside the blog_index_feature template * Remove .specific property inside the blog_index_feature template --- .../templates/fragments/blog_index_feature.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/network-api/networkapi/templates/fragments/blog_index_feature.html b/network-api/networkapi/templates/fragments/blog_index_feature.html index 5969dca9e73..36a09f3b6b9 100644 --- a/network-api/networkapi/templates/fragments/blog_index_feature.html +++ b/network-api/networkapi/templates/fragments/blog_index_feature.html @@ -5,15 +5,15 @@
- {% include "wagtailpages/fragments/blog_topics.html" with topics=blog_page.specific.topics.all video_post=True published_date=blog_page.first_published_at %} + {% include "wagtailpages/fragments/blog_topics.html" with topics=blog_page.topics.all video_post=True published_date=blog_page.first_published_at %} {% if video_url %} {% trans {% endif %} {{ blog_page.first_published_at|date:"DATE_FORMAT" }}
-

{{ blog_page.localized.title }}

-

{{ blog_page.localized.get_meta_description }}

+

{{ blog_page.title }}

+

{{ blog_page.get_meta_description }}

{% endif %} From cad74788983425de2d22681ca414449a0b0d7b3d Mon Sep 17 00:00:00 2001 From: Rob DiVincenzo Date: Thu, 6 Jun 2024 15:34:47 -0400 Subject: [PATCH 10/13] Remove fonts from sass build workflow (#12429) * Update build script * Move fonts files * Update font file includes --- .../templates/donate/pages/base.html | 2 +- .../networkapi/templates/pages/base.html | 2 +- .../templates/pages/buyersguide/base.html | 2 +- .../templates/pattern_library_base.html | 2 +- .../templates/wagtailadmin/404.html | 2 +- .../pages/dear_internet_page.html | 2 +- .../youtube_regrets_reporter_extension.html | 2 +- .../youtube_regrets_2021.html | 2 +- .../youtube_regrets_2022.html | 2 +- .../pages/youtube_regrets_base.html | 2 +- .../pages/youtube_regrets_page.html | 2 +- .../pages/youtube_regrets_reporter_page.html | 2 +- package.json | 11 +- .../nunito-sans.scss => fonts/css/base.css} | 265 +++++++++++++++--- .../caveat.scss => fonts/css/caveat.css} | 15 +- .../changa.scss => fonts/css/changa.css} | 31 +- ...B2QRah7pcpNvOx-pjfJ9eIGpYT5Kmgq3s84t.woff2 | Bin ...fYB2QRah7pcpNvOx-pjfJ9eIWpYT5Kmgq3sw.woff2 | Bin ...B2QRah7pcpNvOx-pjfJ9eIipYT5Kmgq3s84t.woff2 | Bin ...B2QRah7pcpNvOx-pjfJ9eIupYT5Kmgq3s84t.woff2 | Bin ...VOUcOarRPgnNGooxCZ62xcjLj8TlaxZKJa5UE.woff | Bin ...YuVOUcOarRPgnNGooxCZ62xcjfj8TlaxZKJaw.woff | Bin ...VOUcOarRPgnNGooxCZ62xcjnj8TlaxZKJa5UE.woff | Bin .../Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2 | Bin .../Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2 | Bin .../Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2 | Bin ...V9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2 | Bin ...V9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2 | Bin ...V9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2 | Bin ...V9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2 | Bin ...EOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2 | Bin ...n64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2 | Bin ...CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2 | Bin ...CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2 | Bin ...CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2 | Bin ...CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2 | Bin ...dFa4ZfeM_74wlPZtksIFaj8K8VSMdFJ6dZX9.woff2 | Bin .../dFa4ZfeM_74wlPZtksIFaj8K_1SMdFJ6dQ.woff2 | Bin ...a5ZfeM_74wlPZtksIFYoEf6H2pW3pwfa3Efg.woff2 | Bin .../dFa5ZfeM_74wlPZtksIFYoEf6HOpW3pwfa0.woff2 | Bin ...a5ZfeM_74wlPZtksIFYpEY6H2pW3pwfa3Efg.woff2 | Bin .../dFa5ZfeM_74wlPZtksIFYpEY6HOpW3pwfa0.woff2 | Bin ...a5ZfeM_74wlPZtksIFYskZ6H2pW3pwfa3Efg.woff2 | Bin .../dFa5ZfeM_74wlPZtksIFYskZ6HOpW3pwfa0.woff2 | Bin ...a5ZfeM_74wlPZtksIFYuUe6H2pW3pwfa3Efg.woff2 | Bin .../dFa5ZfeM_74wlPZtksIFYuUe6HOpW3pwfa0.woff2 | Bin .../dFa6ZfeM_74wlPZtksIFajQ6_V6LVlBKdA.woff2 | Bin .../dFa6ZfeM_74wlPZtksIFajo6_V6LVlA.woff2 | Bin ...ZfeM_74wlPZtksIFaj8CIHCZV3B3X6_0f1Nk.woff2 | Bin ...anZfeM_74wlPZtksIFaj8CIHCZWXB3X6_0fw.woff2 | Bin ...ZfeM_74wlPZtksIFaj8CVHaZV3B3X6_0f1Nk.woff2 | Bin ...anZfeM_74wlPZtksIFaj8CVHaZWXB3X6_0fw.woff2 | Bin source/sass/font-faces/zilla-slab.scss | 170 ----------- source/sass/fonts.scss | 2 - 54 files changed, 270 insertions(+), 248 deletions(-) rename source/{sass/font-faces/nunito-sans.scss => fonts/css/base.css} (50%) rename source/{sass/font-faces/caveat.scss => fonts/css/caveat.css} (70%) rename source/{sass/font-faces/changa.scss => fonts/css/changa.css} (82%) rename source/fonts/{ => fonts}/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIGpYT5Kmgq3s84t.woff2 (100%) rename source/fonts/{ => fonts}/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIWpYT5Kmgq3sw.woff2 (100%) rename source/fonts/{ => fonts}/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIipYT5Kmgq3s84t.woff2 (100%) rename source/fonts/{ => fonts}/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIupYT5Kmgq3s84t.woff2 (100%) rename source/fonts/{ => fonts}/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjLj8TlaxZKJa5UE.woff (100%) rename source/fonts/{ => fonts}/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjfj8TlaxZKJaw.woff (100%) rename source/fonts/{ => fonts}/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjnj8TlaxZKJa5UE.woff (100%) rename source/fonts/{ => fonts}/Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2 (100%) rename source/fonts/{ => fonts}/Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2 (100%) rename source/fonts/{ => fonts}/Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2 (100%) rename source/fonts/{ => fonts}/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K8VSMdFJ6dZX9.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K_1SMdFJ6dQ.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6H2pW3pwfa3Efg.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6HOpW3pwfa0.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6H2pW3pwfa3Efg.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6HOpW3pwfa0.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6H2pW3pwfa3Efg.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6HOpW3pwfa0.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6H2pW3pwfa3Efg.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6HOpW3pwfa0.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajQ6_V6LVlBKdA.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajo6_V6LVlA.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZV3B3X6_0f1Nk.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZWXB3X6_0fw.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZV3B3X6_0f1Nk.woff2 (100%) rename source/fonts/{ => fonts}/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZWXB3X6_0fw.woff2 (100%) delete mode 100644 source/sass/font-faces/zilla-slab.scss delete mode 100644 source/sass/fonts.scss diff --git a/network-api/networkapi/templates/donate/pages/base.html b/network-api/networkapi/templates/donate/pages/base.html index 989535de40d..f6dc8469ce3 100644 --- a/network-api/networkapi/templates/donate/pages/base.html +++ b/network-api/networkapi/templates/donate/pages/base.html @@ -5,7 +5,7 @@ {% block stylesheets %} - + {% if debug %}{% endif %} {% endblock %} diff --git a/network-api/networkapi/templates/pages/base.html b/network-api/networkapi/templates/pages/base.html index 98243eb9909..2fd23e578ea 100644 --- a/network-api/networkapi/templates/pages/base.html +++ b/network-api/networkapi/templates/pages/base.html @@ -64,7 +64,7 @@ {% block stylesheets %} - + {% endblock %} {% block extended_head %}{% endblock %} diff --git a/network-api/networkapi/templates/pages/buyersguide/base.html b/network-api/networkapi/templates/pages/buyersguide/base.html index c1d72d59d27..1e2397dec69 100644 --- a/network-api/networkapi/templates/pages/buyersguide/base.html +++ b/network-api/networkapi/templates/pages/buyersguide/base.html @@ -39,7 +39,7 @@ {% block stylesheets %} {% if debug %}{% endif %} - + {% endblock %} {% block extended_head %}{% endblock %} diff --git a/network-api/networkapi/templates/pattern_library_base.html b/network-api/networkapi/templates/pattern_library_base.html index 2f5b35e95d6..eb81920dd9c 100644 --- a/network-api/networkapi/templates/pattern_library_base.html +++ b/network-api/networkapi/templates/pattern_library_base.html @@ -17,7 +17,7 @@ {% block stylesheets %} - + {% if debug %}{% endif %} {% endblock %} diff --git a/network-api/networkapi/wagtailcustomization/templates/wagtailadmin/404.html b/network-api/networkapi/wagtailcustomization/templates/wagtailadmin/404.html index 41031aae3b0..5e8d7b362fc 100644 --- a/network-api/networkapi/wagtailcustomization/templates/wagtailadmin/404.html +++ b/network-api/networkapi/wagtailcustomization/templates/wagtailadmin/404.html @@ -13,7 +13,7 @@ - + {% endblock %} diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/dear_internet_page.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/dear_internet_page.html index 4033bab4f21..6c7906078f8 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/dear_internet_page.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/dear_internet_page.html @@ -4,7 +4,7 @@ {% block body_id %}dear-internet{% endblock %} {% block extended_head %} - + {% endblock %} {% block content %} diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/regrets-reporter-landing-page/youtube_regrets_reporter_extension.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/regrets-reporter-landing-page/youtube_regrets_reporter_extension.html index 62e67eee199..788a6813083 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/regrets-reporter-landing-page/youtube_regrets_reporter_extension.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/regrets-reporter-landing-page/youtube_regrets_reporter_extension.html @@ -4,7 +4,7 @@ {% block body_id %}youtube-regrets-reporter-extension{% endblock %} {% block extended_head %} - + {% endblock %} diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube-regrets-2021/youtube_regrets_2021.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube-regrets-2021/youtube_regrets_2021.html index 462ef95195d..b433e49cabe 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube-regrets-2021/youtube_regrets_2021.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube-regrets-2021/youtube_regrets_2021.html @@ -5,7 +5,7 @@ {% block bodyclass %}youtube-regrets-2021 youtube-regrets-shared{% endblock %} {% block extended_head %} - + {% endblock %} {# Empty header; Do not add
to the page #} diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube-regrets-2022/youtube_regrets_2022.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube-regrets-2022/youtube_regrets_2022.html index a6c2f5c7c4a..f9359ae9ea6 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube-regrets-2022/youtube_regrets_2022.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube-regrets-2022/youtube_regrets_2022.html @@ -5,7 +5,7 @@ {% block bodyclass %}youtube-regrets-2022 youtube-regrets-shared{% endblock %} {% block extended_head %} - + {% endblock %} {# Empty header; Do not add
to the page #} diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_base.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_base.html index e44cc0e46ef..cb7275cc3ea 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_base.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_base.html @@ -5,7 +5,7 @@ {% block bodyclass %}has-regrets-intro{% endblock %} {% block extended_head %} - + {% endblock %} {# Empty header; Do not add
to the page #} diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html index 3b41db849e0..8df4ef442f5 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html @@ -4,7 +4,7 @@ {% block body_id %}youtube-regrets{% endblock %} {% block extended_head %} - + {% endblock %} {% block intro_stationary_wrapper %} diff --git a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_reporter_page.html b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_reporter_page.html index b0bf16c57d7..b17d44579ee 100644 --- a/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_reporter_page.html +++ b/network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_reporter_page.html @@ -4,7 +4,7 @@ {% block body_id %}youtube-regrets-reporter{% endblock %} {% block extended_head %} - + {% endblock %} {% block intro_stationary_wrapper %} diff --git a/package.json b/package.json index 6ecd3801ac6..5c3e9d698e0 100644 --- a/package.json +++ b/package.json @@ -14,15 +14,17 @@ "build:images": "shx rm -rf network-api/networkapi/frontend/_images && shx cp -r source/images network-api/networkapi/frontend/_images", "build:js:dev": "node esbuild.config.js -- --node-env development", "build:js:prod": "node esbuild.config.js -- --node-env production", + "build:fonts": "run-p build:fonts:fonts && run-p build:fonts:css", + "build:fonts:fonts": "shx rm -rf network-api/networkapi/frontend/_fonts && cp -r source/fonts network-api/networkapi/frontend/_fonts", + "build:fonts:css": "run-p build:fonts:css:**", + "build:fonts:css:base": "sass --style=compressed source/fonts/css/base.css network-api/networkapi/frontend/_fonts/css/base.min.css && shx rm network-api/networkapi/frontend/_fonts/css/base.css", + "build:fonts:css:caveat": "sass --style=compressed source/fonts/css/caveat.css network-api/networkapi/frontend/_fonts/css/caveat.min.css && shx rm network-api/networkapi/frontend/_fonts/css/caveat.css", + "build:fonts:css:changa": "sass --style=compressed source/fonts/css/changa.css network-api/networkapi/frontend/_fonts/css/changa.min.css && shx rm network-api/networkapi/frontend/_fonts/css/changa.css", "build:css": "run-p build:css:file:**", "build:css:file:main": "sass source/sass/main.scss network-api/networkapi/temp/frontend/_css/main.compiled.css", - "build:css:file:fonts": "sass source/sass/fonts.scss network-api/networkapi/temp/frontend/_css/fonts.compiled.css", - "build:css:file:fonts:caveat": "sass source/sass/font-faces/caveat.scss network-api/networkapi/temp/frontend/_css/fonts.caveat.compiled.css", - "build:css:file:fonts:changa": "sass source/sass/font-faces/changa.scss network-api/networkapi/temp/frontend/_css/fonts.changa.compiled.css", "build:css:file:bg": "sass source/sass/buyers-guide/bg-main.scss network-api/networkapi/temp/frontend/_css/buyers-guide.compiled.css", "build:css:file:donate": "sass source/sass/donate/donate-main.scss network-api/networkapi/temp/frontend/_css/donate.compiled.css", "build:css:file:formassembly": "sass source/sass/formassembly-override.scss network-api/networkapi/temp/frontend/_css/formassembly-override.compiled.css", - "build:fonts": "shx rm -rf network-api/networkapi/frontend/_fonts && cp -r source/fonts network-api/networkapi/frontend/_fonts", "docker:up": "docker-compose up", "docker:down": "docker-compose down", "fix": "run-s fix:*", @@ -64,7 +66,6 @@ "sync": "browser-sync start --proxy \"localhost:8000\" --reload-debounce 50 --files \"./network-api/networkapi/**/*.html\" \"./network-api/networkapi/frontend/_css/*.css\" \"./network-api/networkapi/frontend/_js/*.js\"", "test": "npm run lint", "watch": "run-s build:clean && run-p build:common && run-p build:js:dev postcss:watch watch:**", - "watch:fonts": "chokidar \"source/fonts/**/*\" -c \"npm run build:fonts\"", "watch:images": "chokidar \"source/images/**/*\" -c \"npm run build:images\"", "watch:scss": "chokidar \"source/**/*.scss\" -c \"npm run build:css\"" }, diff --git a/source/sass/font-faces/nunito-sans.scss b/source/fonts/css/base.css similarity index 50% rename from source/sass/font-faces/nunito-sans.scss rename to source/fonts/css/base.css index bc774252193..007e1cf606f 100644 --- a/source/sass/font-faces/nunito-sans.scss +++ b/source/fonts/css/base.css @@ -1,4 +1,7 @@ -//Source: https://fonts.googleapis.com/css?family=Nunito+Sans:400,300,600,700,300i,800,900,400i +/* +Nunito Sans +Source: https://fonts.googleapis.com/css?family=Nunito+Sans:400,300,600,700,300i,800,900,400i +*/ /* cyrillic-ext */ @font-face { @@ -6,7 +9,7 @@ font-style: italic; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; @@ -17,7 +20,7 @@ font-style: italic; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @@ -27,7 +30,7 @@ font-style: italic; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2") format("woff2"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, @@ -39,7 +42,7 @@ font-style: italic; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -50,7 +53,7 @@ font-style: italic; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, @@ -62,7 +65,7 @@ font-style: italic; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; @@ -73,7 +76,7 @@ font-style: italic; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @@ -83,7 +86,7 @@ font-style: italic; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2") format("woff2"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, @@ -95,7 +98,7 @@ font-style: italic; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -106,7 +109,7 @@ font-style: italic; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2") + src: url("../fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, @@ -118,7 +121,7 @@ font-style: normal; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; @@ -129,7 +132,7 @@ font-style: normal; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @@ -139,7 +142,7 @@ font-style: normal; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, @@ -151,7 +154,7 @@ font-style: normal; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -162,7 +165,7 @@ font-style: normal; font-weight: 300; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, @@ -174,7 +177,7 @@ font-style: normal; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; @@ -185,7 +188,7 @@ font-style: normal; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @@ -195,7 +198,7 @@ font-style: normal; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, @@ -207,7 +210,7 @@ font-style: normal; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -218,7 +221,7 @@ font-style: normal; font-weight: 400; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, @@ -230,7 +233,7 @@ font-style: normal; font-weight: 600; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; @@ -241,7 +244,7 @@ font-style: normal; font-weight: 600; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @@ -251,7 +254,7 @@ font-style: normal; font-weight: 600; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, @@ -263,7 +266,7 @@ font-style: normal; font-weight: 600; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -274,7 +277,7 @@ font-style: normal; font-weight: 600; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, @@ -286,7 +289,7 @@ font-style: normal; font-weight: 700; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; @@ -297,7 +300,7 @@ font-style: normal; font-weight: 700; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @@ -307,7 +310,7 @@ font-style: normal; font-weight: 700; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, @@ -319,7 +322,7 @@ font-style: normal; font-weight: 700; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -330,7 +333,7 @@ font-style: normal; font-weight: 700; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, @@ -342,7 +345,7 @@ font-style: normal; font-weight: 800; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; @@ -353,7 +356,7 @@ font-style: normal; font-weight: 800; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @@ -363,7 +366,7 @@ font-style: normal; font-weight: 800; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, @@ -375,7 +378,7 @@ font-style: normal; font-weight: 800; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -386,7 +389,7 @@ font-style: normal; font-weight: 800; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, @@ -398,7 +401,7 @@ font-style: normal; font-weight: 900; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; @@ -409,7 +412,7 @@ font-style: normal; font-weight: 900; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @@ -419,7 +422,7 @@ font-style: normal; font-weight: 900; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, @@ -431,7 +434,7 @@ font-style: normal; font-weight: 900; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -442,7 +445,187 @@ font-style: normal; font-weight: 900; font-stretch: 100%; - src: url("../_fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") + src: url("../fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2") + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + + + + + + + + +/* +Zilla Slab +Source: https://fonts.googleapis.com/css?family=Zilla+Slab:300,400,500,600,700,300i,400i,600i +*/ +/* latin-ext */ +@font-face { + font-family: "Zilla Slab"; + font-style: italic; + font-weight: 300; + src: url("../fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZV3B3X6_0f1Nk.woff2") + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Zilla Slab"; + font-style: italic; + font-weight: 300; + src: url("../fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZWXB3X6_0fw.woff2") + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* latin-ext */ +@font-face { + font-family: "Zilla Slab"; + font-style: italic; + font-weight: 400; + src: url("../fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K8VSMdFJ6dZX9.woff2") + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Zilla Slab"; + font-style: italic; + font-weight: 400; + src: url("../fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K_1SMdFJ6dQ.woff2") + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* latin-ext */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 500; + src: url("../fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6H2pW3pwfa3Efg.woff2") + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 500; + src: url("../fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6HOpW3pwfa0.woff2") + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* latin-ext */ +@font-face { + font-family: "Zilla Slab"; + font-style: italic; + font-weight: 600; + src: url("../fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZV3B3X6_0f1Nk.woff2") + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Zilla Slab"; + font-style: italic; + font-weight: 600; + src: url("../fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZWXB3X6_0fw.woff2") + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* latin-ext */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 300; + src: url("../fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6H2pW3pwfa3Efg.woff2") + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 300; + src: url("../fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6HOpW3pwfa0.woff2") + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* latin-ext */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 400; + src: url("../fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajQ6_V6LVlBKdA.woff2") + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 400; + src: url("../fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajo6_V6LVlA.woff2") + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* latin-ext */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 600; + src: url("../fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6H2pW3pwfa3Efg.woff2") + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 600; + src: url("../fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6HOpW3pwfa0.woff2") + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* latin-ext */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 700; + src: url("../fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6H2pW3pwfa3Efg.woff2") + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Zilla Slab"; + font-style: normal; + font-weight: 700; + src: url("../fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6HOpW3pwfa0.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, diff --git a/source/sass/font-faces/caveat.scss b/source/fonts/css/caveat.css similarity index 70% rename from source/sass/font-faces/caveat.scss rename to source/fonts/css/caveat.css index 77fc58518aa..b5c9328baff 100644 --- a/source/sass/font-faces/caveat.scss +++ b/source/fonts/css/caveat.css @@ -1,5 +1,8 @@ -//For use on Dear Internet page -//Source: https://fonts.googleapis.com/css2?family=Caveat&display=swap +/* +Caveat +For use on Dear Internet page +Source: https://fonts.googleapis.com/css2?family=Caveat&display=swap +*/ /* cyrillic-ext */ @font-face { @@ -7,7 +10,7 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url("../_fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIipYT5Kmgq3s84t.woff2") + src: url("../fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIipYT5Kmgq3s84t.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; @@ -18,7 +21,7 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url("../_fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIGpYT5Kmgq3s84t.woff2") + src: url("../fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIGpYT5Kmgq3s84t.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @@ -28,7 +31,7 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url("../_fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIupYT5Kmgq3s84t.woff2") + src: url("../fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIupYT5Kmgq3s84t.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -39,7 +42,7 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url("../_fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIWpYT5Kmgq3sw.woff2") + src: url("../fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIWpYT5Kmgq3sw.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, diff --git a/source/sass/font-faces/changa.scss b/source/fonts/css/changa.css similarity index 82% rename from source/sass/font-faces/changa.scss rename to source/fonts/css/changa.css index 71efb50aef8..36b1b00ad1c 100644 --- a/source/sass/font-faces/changa.scss +++ b/source/fonts/css/changa.css @@ -1,5 +1,8 @@ -//For use on YouTube Regrets Reporter -//Source: https://fonts.googleapis.com/css2?family=Changa:wght@600;700&display=swap +/* +Changa +For use on YouTube Regrets Reporter +Source: https://fonts.googleapis.com/css2?family=Changa:wght@600;700&display=swap +*/ /* arabic */ @font-face { @@ -7,7 +10,7 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url("../_fonts/Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2") + src: url("../fonts/Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0898-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, @@ -25,7 +28,7 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url("../_fonts/Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2") + src: url("../fonts/Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -36,7 +39,7 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url("../_fonts/Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2") format("woff2"); + src: url("../fonts/Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; @@ -47,7 +50,7 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url("../_fonts/Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2") + src: url("../fonts/Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0898-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, @@ -65,7 +68,7 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url("../_fonts/Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2") + src: url("../fonts/Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -76,20 +79,24 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url("../_fonts/Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2") format("woff2"); + src: url("../fonts/Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } -//Source: https://fonts.googleapis.com/css?family=Changa +/* +Changa +For use on YouTube Regrets Reporter +Source: https://fonts.googleapis.com/css?family=Changa +*/ /* arabic */ @font-face { font-family: "Changa"; font-style: normal; font-weight: 400; - src: url("../_fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjLj8TlaxZKJa5UE.woff") + src: url("../fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjLj8TlaxZKJa5UE.woff") format("woff"); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0898-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, @@ -106,7 +113,7 @@ font-family: "Changa"; font-style: normal; font-weight: 400; - src: url("../_fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjnj8TlaxZKJa5UE.woff") + src: url("../fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjnj8TlaxZKJa5UE.woff") format("woff"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; @@ -116,7 +123,7 @@ font-family: "Changa"; font-style: normal; font-weight: 400; - src: url("../_fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjfj8TlaxZKJaw.woff") + src: url("../fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjfj8TlaxZKJaw.woff") format("woff"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, diff --git a/source/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIGpYT5Kmgq3s84t.woff2 b/source/fonts/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIGpYT5Kmgq3s84t.woff2 similarity index 100% rename from source/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIGpYT5Kmgq3s84t.woff2 rename to source/fonts/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIGpYT5Kmgq3s84t.woff2 diff --git a/source/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIWpYT5Kmgq3sw.woff2 b/source/fonts/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIWpYT5Kmgq3sw.woff2 similarity index 100% rename from source/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIWpYT5Kmgq3sw.woff2 rename to source/fonts/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIWpYT5Kmgq3sw.woff2 diff --git a/source/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIipYT5Kmgq3s84t.woff2 b/source/fonts/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIipYT5Kmgq3s84t.woff2 similarity index 100% rename from source/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIipYT5Kmgq3s84t.woff2 rename to source/fonts/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIipYT5Kmgq3s84t.woff2 diff --git a/source/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIupYT5Kmgq3s84t.woff2 b/source/fonts/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIupYT5Kmgq3s84t.woff2 similarity index 100% rename from source/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIupYT5Kmgq3s84t.woff2 rename to source/fonts/fonts/Caveat/WnznHAc5bAfYB2QRah7pcpNvOx-pjfJ9eIupYT5Kmgq3s84t.woff2 diff --git a/source/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjLj8TlaxZKJa5UE.woff b/source/fonts/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjLj8TlaxZKJa5UE.woff similarity index 100% rename from source/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjLj8TlaxZKJa5UE.woff rename to source/fonts/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjLj8TlaxZKJa5UE.woff diff --git a/source/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjfj8TlaxZKJaw.woff b/source/fonts/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjfj8TlaxZKJaw.woff similarity index 100% rename from source/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjfj8TlaxZKJaw.woff rename to source/fonts/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjfj8TlaxZKJaw.woff diff --git a/source/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjnj8TlaxZKJa5UE.woff b/source/fonts/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjnj8TlaxZKJa5UE.woff similarity index 100% rename from source/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjnj8TlaxZKJa5UE.woff rename to source/fonts/fonts/Changa/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xcjnj8TlaxZKJa5UE.woff diff --git a/source/fonts/Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2 b/source/fonts/fonts/Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2 similarity index 100% rename from source/fonts/Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2 rename to source/fonts/fonts/Changa/2-cm9JNi2YuVOUckY5y-eOz1paFD.woff2 diff --git a/source/fonts/Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2 b/source/fonts/fonts/Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2 similarity index 100% rename from source/fonts/Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2 rename to source/fonts/fonts/Changa/2-cm9JNi2YuVOUckZpy-eOz1pQ.woff2 diff --git a/source/fonts/Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2 b/source/fonts/fonts/Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2 similarity index 100% rename from source/fonts/Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2 rename to source/fonts/fonts/Changa/2-cm9JNi2YuVOUckaJy-eOz1paFD.woff2 diff --git a/source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2 b/source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-1aLZx3lE4-Hw.woff2 diff --git a/source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2 b/source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-RaLZx3lE4-Hw.woff2 diff --git a/source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2 b/source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-ZaLZx3lE4-Hw.woff2 diff --git a/source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2 b/source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-daLZx3lE4-Hw.woff2 diff --git a/source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2 b/source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0RMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwd-laLZx3lE4.woff2 diff --git a/source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2 b/source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t1R-tQKr51.woff2 diff --git a/source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2 b/source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t4R-tQKr51pE8.woff2 diff --git a/source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2 b/source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t6R-tQKr51pE8.woff2 diff --git a/source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2 b/source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7t7R-tQKr51pE8.woff2 diff --git a/source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2 b/source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2 similarity index 100% rename from source/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2 rename to source/fonts/fonts/Nunito_Sans/pe0TMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp7txR-tQKr51pE8.woff2 diff --git a/source/fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K8VSMdFJ6dZX9.woff2 b/source/fonts/fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K8VSMdFJ6dZX9.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K8VSMdFJ6dZX9.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K8VSMdFJ6dZX9.woff2 diff --git a/source/fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K_1SMdFJ6dQ.woff2 b/source/fonts/fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K_1SMdFJ6dQ.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K_1SMdFJ6dQ.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K_1SMdFJ6dQ.woff2 diff --git a/source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6H2pW3pwfa3Efg.woff2 b/source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6H2pW3pwfa3Efg.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6H2pW3pwfa3Efg.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6H2pW3pwfa3Efg.woff2 diff --git a/source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6HOpW3pwfa0.woff2 b/source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6HOpW3pwfa0.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6HOpW3pwfa0.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6HOpW3pwfa0.woff2 diff --git a/source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6H2pW3pwfa3Efg.woff2 b/source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6H2pW3pwfa3Efg.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6H2pW3pwfa3Efg.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6H2pW3pwfa3Efg.woff2 diff --git a/source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6HOpW3pwfa0.woff2 b/source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6HOpW3pwfa0.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6HOpW3pwfa0.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6HOpW3pwfa0.woff2 diff --git a/source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6H2pW3pwfa3Efg.woff2 b/source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6H2pW3pwfa3Efg.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6H2pW3pwfa3Efg.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6H2pW3pwfa3Efg.woff2 diff --git a/source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6HOpW3pwfa0.woff2 b/source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6HOpW3pwfa0.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6HOpW3pwfa0.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6HOpW3pwfa0.woff2 diff --git a/source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6H2pW3pwfa3Efg.woff2 b/source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6H2pW3pwfa3Efg.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6H2pW3pwfa3Efg.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6H2pW3pwfa3Efg.woff2 diff --git a/source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6HOpW3pwfa0.woff2 b/source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6HOpW3pwfa0.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6HOpW3pwfa0.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6HOpW3pwfa0.woff2 diff --git a/source/fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajQ6_V6LVlBKdA.woff2 b/source/fonts/fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajQ6_V6LVlBKdA.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajQ6_V6LVlBKdA.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajQ6_V6LVlBKdA.woff2 diff --git a/source/fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajo6_V6LVlA.woff2 b/source/fonts/fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajo6_V6LVlA.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajo6_V6LVlA.woff2 rename to source/fonts/fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajo6_V6LVlA.woff2 diff --git a/source/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZV3B3X6_0f1Nk.woff2 b/source/fonts/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZV3B3X6_0f1Nk.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZV3B3X6_0f1Nk.woff2 rename to source/fonts/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZV3B3X6_0f1Nk.woff2 diff --git a/source/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZWXB3X6_0fw.woff2 b/source/fonts/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZWXB3X6_0fw.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZWXB3X6_0fw.woff2 rename to source/fonts/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZWXB3X6_0fw.woff2 diff --git a/source/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZV3B3X6_0f1Nk.woff2 b/source/fonts/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZV3B3X6_0f1Nk.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZV3B3X6_0f1Nk.woff2 rename to source/fonts/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZV3B3X6_0f1Nk.woff2 diff --git a/source/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZWXB3X6_0fw.woff2 b/source/fonts/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZWXB3X6_0fw.woff2 similarity index 100% rename from source/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZWXB3X6_0fw.woff2 rename to source/fonts/fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZWXB3X6_0fw.woff2 diff --git a/source/sass/font-faces/zilla-slab.scss b/source/sass/font-faces/zilla-slab.scss deleted file mode 100644 index e49a2e72b3b..00000000000 --- a/source/sass/font-faces/zilla-slab.scss +++ /dev/null @@ -1,170 +0,0 @@ -//Source: https://fonts.googleapis.com/css?family=Zilla+Slab:300,400,500,600,700,300i,400i,600i - -/* latin-ext */ -@font-face { - font-family: "Zilla Slab"; - font-style: italic; - font-weight: 300; - src: url("../_fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZV3B3X6_0f1Nk.woff2") - format("woff2"); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, - U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: "Zilla Slab"; - font-style: italic; - font-weight: 300; - src: url("../_fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CVHaZWXB3X6_0fw.woff2") - format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, - U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, - U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* latin-ext */ -@font-face { - font-family: "Zilla Slab"; - font-style: italic; - font-weight: 400; - src: url("../_fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K8VSMdFJ6dZX9.woff2") - format("woff2"); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, - U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: "Zilla Slab"; - font-style: italic; - font-weight: 400; - src: url("../_fonts/Zilla_Slab/dFa4ZfeM_74wlPZtksIFaj8K_1SMdFJ6dQ.woff2") - format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, - U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, - U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* latin-ext */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 500; - src: url("../_fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6H2pW3pwfa3Efg.woff2") - format("woff2"); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, - U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 500; - src: url("../_fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYskZ6HOpW3pwfa0.woff2") - format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, - U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, - U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* latin-ext */ -@font-face { - font-family: "Zilla Slab"; - font-style: italic; - font-weight: 600; - src: url("../_fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZV3B3X6_0f1Nk.woff2") - format("woff2"); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, - U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: "Zilla Slab"; - font-style: italic; - font-weight: 600; - src: url("../_fonts/Zilla_Slab/dFanZfeM_74wlPZtksIFaj8CIHCZWXB3X6_0fw.woff2") - format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, - U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, - U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* latin-ext */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 300; - src: url("../_fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6H2pW3pwfa3Efg.woff2") - format("woff2"); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, - U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 300; - src: url("../_fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYpEY6HOpW3pwfa0.woff2") - format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, - U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, - U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* latin-ext */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 400; - src: url("../_fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajQ6_V6LVlBKdA.woff2") - format("woff2"); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, - U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 400; - src: url("../_fonts/Zilla_Slab/dFa6ZfeM_74wlPZtksIFajo6_V6LVlA.woff2") - format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, - U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, - U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* latin-ext */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 600; - src: url("../_fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6H2pW3pwfa3Efg.woff2") - format("woff2"); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, - U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 600; - src: url("../_fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYuUe6HOpW3pwfa0.woff2") - format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, - U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, - U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* latin-ext */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 700; - src: url("../_fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6H2pW3pwfa3Efg.woff2") - format("woff2"); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, - U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: "Zilla Slab"; - font-style: normal; - font-weight: 700; - src: url("../_fonts/Zilla_Slab/dFa5ZfeM_74wlPZtksIFYoEf6HOpW3pwfa0.woff2") - format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, - U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, - U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} diff --git a/source/sass/fonts.scss b/source/sass/fonts.scss deleted file mode 100644 index 852fd651171..00000000000 --- a/source/sass/fonts.scss +++ /dev/null @@ -1,2 +0,0 @@ -@import "./font-faces/nunito-sans"; -@import "./font-faces/zilla-slab"; From 67bfafa42eff1051da722d96640e8546c50a5755 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:24:25 -0600 Subject: [PATCH 11/13] Bump faker from 25.0.1 to 25.6.0 (#12452) Bumps [faker](https://github.com/joke2k/faker) from 25.0.1 to 25.6.0. - [Release notes](https://github.com/joke2k/faker/releases) - [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md) - [Commits](https://github.com/joke2k/faker/compare/v25.0.1...v25.6.0) --- updated-dependencies: - dependency-name: faker dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 51891665d1e..a12942c39c3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -117,7 +117,7 @@ factory-boy==3.3.0 # via # -r requirements.in # wagtail-factories -faker==25.0.1 +faker==25.6.0 # via # -r requirements.in # factory-boy From 221cc5e4366832fc8c271b7ffa9b3597c8025c87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:52:58 -0600 Subject: [PATCH 12/13] Bump requests from 2.31.0 to 2.32.3 (#12415) Bumps [requests](https://github.com/psf/requests) from 2.31.0 to 2.32.3. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.3) --- updated-dependencies: - dependency-name: requests dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a12942c39c3..be415c46603 100644 --- a/requirements.txt +++ b/requirements.txt @@ -195,7 +195,7 @@ pyyaml==6.0.1 # via django-pattern-library redis==4.5.4 # via django-redis -requests==2.31.0 +requests==2.32.3 # via # -r requirements.in # basket-client From b00338b3165d226d872ce66810a7ef2ad535fead Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 00:25:25 +0000 Subject: [PATCH 13/13] Bump pytest from 8.1.1 to 8.2.2 (#12453) Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.1.1 to 8.2.2. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.1.1...8.2.2) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dev-requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-requirements.txt b/dev-requirements.txt index cf2cc350b6b..4f04bd57abb 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -72,7 +72,7 @@ pathspec==0.11.1 # djlint platformdirs==2.5.3 # via black -pluggy==1.4.0 +pluggy==1.5.0 # via pytest ptvsd==4.3.2 # via -r dev-requirements.in @@ -80,7 +80,7 @@ pycodestyle==2.11.0 # via flake8 pyflakes==3.2.0 # via flake8 -pytest==8.1.1 +pytest==8.2.2 # via # -r dev-requirements.in # pytest-cov