Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Features Icons in features panel #284

Open
wants to merge 172 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 164 commits
Commits
Show all changes
172 commits
Select commit Hold shift + click to select a range
f6c619b
Hello Wrold
aviadamar Jan 15, 2021
1ee94e4
Creating Html Template
aviadamar Jan 15, 2021
96b80de
First Calendar Monthly View - HTML\CSS only
aviadamar Jan 16, 2021
4614585
Merge branch 'main' of https://github.com/PythonFreeCourse/calendar i…
aviadamar Jan 16, 2021
82249b5
Calendar dates calculation intigrating with html, HTML\CSS improvments.
aviadamar Jan 17, 2021
d2208d6
Merge branch 'main' of https://github.com/PythonFreeCourse/calendar i…
aviadamar Jan 17, 2021
178e904
Tests for calender_grid.py, changing function according to currection…
aviadamar Jan 17, 2021
f385c56
linting bug fixing
aviadamar Jan 18, 2021
c2aa519
before merge with develop
aviadamar Jan 19, 2021
3a563cc
after merge with develop
aviadamar Jan 19, 2021
6f9a2ba
Creating a Day object and days subclasses, changing all function and …
aviadamar Jan 20, 2021
a17e89b
Fixing Conflicts
aviadamar Jan 21, 2021
75abb99
fix lintings
aviadamar Jan 21, 2021
d2577aa
fix lintings
aviadamar Jan 21, 2021
e76ed53
tests next week scroll
aviadamar Jan 23, 2021
19768ca
js updates
aviadamar Jan 23, 2021
b288c49
Calendar Scrolling with javascript
aviadamar Jan 24, 2021
5621485
Calendar infinit scrolling and functions changes, bus fixing
aviadamar Jan 24, 2021
10b836c
Fix lintings
aviadamar Jan 24, 2021
43dd46e
Fix lintings
aviadamar Jan 24, 2021
248a0ba
Calendar infinit scrolling ducplicates weeks bug fixed
aviadamar Jan 24, 2021
59b7fe3
seetings global parameters for calendar.py
aviadamar Jan 24, 2021
efa6b2d
Js - changing to fetch, removing jquery, fixing hint tpying, adding W…
aviadamar Jan 24, 2021
1df4cd5
Front end bug fixing
aviadamar Jan 24, 2021
2e02b65
Fix linting
aviadamar Jan 24, 2021
e02bd14
Fix lintings
aviadamar Jan 24, 2021
2271a3c
Fix lintings
aviadamar Jan 24, 2021
126c92e
gixing js bugs
aviadamar Jan 25, 2021
8af556c
fixing syntax
aviadamar Jan 25, 2021
bc3322f
Get user local date and time when enter calendar.
aviadamar Jan 26, 2021
a60c7c8
Fix lintings
aviadamar Jan 26, 2021
60849ab
bug fixging and pull develop update
aviadamar Jan 29, 2021
b8e6044
Fix lintings
aviadamar Jan 29, 2021
0b601e2
Fix lintings
aviadamar Jan 29, 2021
9ca2183
Bugs fixing
aviadamar Jan 29, 2021
79b2f5c
Bugs fixing
aviadamar Jan 29, 2021
e4c662d
Js fixing bugs and syntext.
aviadamar Jan 31, 2021
03e4349
Bugs fixing
aviadamar Jan 31, 2021
982daea
Bugs fixing
aviadamar Jan 31, 2021
19de078
JS alerts removal
aviadamar Jan 31, 2021
b97279f
Fix Lintings
aviadamar Jan 31, 2021
6516f7c
Js syntext fixing
aviadamar Jan 31, 2021
d496b07
Bugs fixing
aviadamar Jan 31, 2021
41b7bd4
Bugs fixing
aviadamar Jan 31, 2021
66d8972
Js fixing varibales and adding div element to request.
aviadamar Jan 31, 2021
d09b5fd
add models to db
LiranCaduri Feb 1, 2021
4f54e25
Js global parameters fixing
aviadamar Feb 1, 2021
013c6d5
figure out delete.
LiranCaduri Feb 2, 2021
f0bd6ac
Develop update
aviadamar Feb 2, 2021
b9a0c0b
Develop Update
aviadamar Feb 2, 2021
894f234
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 2, 2021
5cbf776
Js - eliminate global parameters
aviadamar Feb 2, 2021
901f88f
Linting fixing
aviadamar Feb 2, 2021
445a962
Fix Lintings
aviadamar Feb 2, 2021
dd0f480
Js fixings
aviadamar Feb 3, 2021
1e8e206
Fix flake8
aviadamar Feb 3, 2021
85d904f
syntac fixing
aviadamar Feb 3, 2021
cb7947c
first structure of route with middlewere
LiranCaduri Feb 3, 2021
30df427
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
aviadamar Feb 4, 2021
d39d7e7
Js html\body duplication bug fix
aviadamar Feb 4, 2021
b44c386
Js extra div bug fix
aviadamar Feb 4, 2021
3ee9bd3
Js scrolling duplication days fixed
aviadamar Feb 4, 2021
f214d22
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
aviadamar Feb 5, 2021
3334824
month scrolling navigation
aviadamar Feb 5, 2021
523c01e
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 6, 2021
158ecb0
CSS vars
aviadamar Feb 6, 2021
572036e
try middleware
LiranCaduri Feb 7, 2021
9be7f08
backup before pull
aviadamar Feb 7, 2021
397cee3
add middleware filtering requests
LiranCaduri Feb 8, 2021
1da1dda
add: get_user_disabled_features and get_user_enabled_features
LiranCaduri Feb 9, 2021
d160605
modify middleware
LiranCaduri Feb 10, 2021
b51cd21
replace testclient, add on startup event, feature folder, is_feature_…
LiranCaduri Feb 10, 2021
9df777b
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 11, 2021
e4a817a
improved is_feature_enabled and middleware code.
LiranCaduri Feb 11, 2021
0514121
add_feature_to_user function
LiranCaduri Feb 11, 2021
645e586
month navigation WIP
aviadamar Feb 11, 2021
70aea36
update develop
aviadamar Feb 11, 2021
b961da4
JS: Month navigation bar
aviadamar Feb 12, 2021
809b727
css fix
aviadamar Feb 12, 2021
03930c9
Month Navigations and CSS changes
aviadamar Feb 12, 2021
e54b172
Fix lintings
aviadamar Feb 12, 2021
0f71c68
Scroll back bug fixed
aviadamar Feb 12, 2021
c715299
add checking for duplicates in association table
LiranCaduri Feb 13, 2021
6380a8c
renaming some files, and adding on and off routes
LiranCaduri Feb 13, 2021
7f50cc0
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 13, 2021
2ea61cb
.example
LiranCaduri Feb 13, 2021
a11e846
style/features init settings
aviadamar Feb 13, 2021
d629496
features wip 14/02
aviadamar Feb 14, 2021
b2b839f
split to internal
LiranCaduri Feb 14, 2021
36af9b7
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 14, 2021
8c4929c
add config
LiranCaduri Feb 14, 2021
b999bc6
add tests
LiranCaduri Feb 14, 2021
7d0cbc0
feature icon backend first
LiranCaduri Feb 14, 2021
647af4b
Features wip 15.02.21
aviadamar Feb 15, 2021
685b30e
feature search
aviadamar Feb 16, 2021
e97f29b
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 16, 2021
6220ad0
access decorator, back to fastapi testclient, fix tests, new document…
LiranCaduri Feb 16, 2021
f6a6630
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 16, 2021
0b27713
fix flake8 issue
LiranCaduri Feb 16, 2021
416211a
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 16, 2021
9cb181a
fix tests, after apdate
LiranCaduri Feb 16, 2021
2572153
requested changes
LiranCaduri Feb 18, 2021
10c7d88
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 18, 2021
7f0ab27
.example
LiranCaduri Feb 18, 2021
d097501
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 18, 2021
62a0295
before pull 18.02.21
aviadamar Feb 18, 2021
e2eeecc
after pull 18.02.21
aviadamar Feb 18, 2021
1c1bbe7
requested changes
LiranCaduri Feb 19, 2021
a8e8725
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 19, 2021
0109771
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 19, 2021
4eeaeea
Before changit to fetch
aviadamar Feb 20, 2021
dfe02c7
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 20, 2021
2081329
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 20, 2021
107d246
changes
LiranCaduri Feb 20, 2021
11c1727
after pull 21.02.21
aviadamar Feb 21, 2021
ea84de5
Before Passing to Liran
aviadamar Feb 21, 2021
bf7fae9
Before passing to Liran
aviadamar Feb 21, 2021
182b6be
before cache
LiranCaduri Feb 21, 2021
5738b16
Merge branch 'style/features' of https://github.com/LiranCaduri/calen…
LiranCaduri Feb 21, 2021
652c155
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 21, 2021
f9145c8
adjusted to front
LiranCaduri Feb 21, 2021
21bbe87
add followers, add tests, add front
LiranCaduri Feb 21, 2021
f74690a
fix flake8 issue
LiranCaduri Feb 21, 2021
d6b26a8
remove redundant things
LiranCaduri Feb 21, 2021
4618b06
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 21, 2021
83668d3
Information on click fixed, Followers managment added
aviadamar Feb 21, 2021
750d8fa
fix feature followers front update
LiranCaduri Feb 21, 2021
c4f6cbe
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 21, 2021
3c88d35
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 22, 2021
096d6fa
remove redundant things
LiranCaduri Feb 22, 2021
322b96a
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 22, 2021
4696df2
pre-commit change some stuff
LiranCaduri Feb 23, 2021
105d253
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 23, 2021
dc9fcce
remove blank lines
LiranCaduri Feb 23, 2021
6bd5e03
First scrolling bug fixed
aviadamar Feb 23, 2021
58664fb
after pull and bug fix
aviadamar Feb 23, 2021
32cb480
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 23, 2021
05ea3be
Merge branch 'style/features' of https://github.com/LiranCaduri/calen…
LiranCaduri Feb 23, 2021
1ce0099
fix error
LiranCaduri Feb 24, 2021
d677ccd
requested changes
LiranCaduri Feb 24, 2021
7712b07
update .gitignore
LiranCaduri Feb 24, 2021
ecd5cb8
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 24, 2021
a9f9001
fix semantics
LiranCaduri Feb 24, 2021
0cd1f49
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 24, 2021
172a1da
fix tests
LiranCaduri Feb 24, 2021
04c48a5
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 24, 2021
5b92634
fix logic
LiranCaduri Feb 24, 2021
572e992
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 24, 2021
571fe1a
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 24, 2021
2349b2b
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 24, 2021
36f841b
requested changes
LiranCaduri Feb 25, 2021
c181946
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 25, 2021
93b0b02
use pre-commit on google-connect
LiranCaduri Feb 25, 2021
28a4558
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 25, 2021
144ff0e
fix features back
LiranCaduri Feb 25, 2021
3bd43b2
requested changes
LiranCaduri Feb 25, 2021
69ed31b
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 25, 2021
e0b121b
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri Feb 25, 2021
9fde7a3
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 25, 2021
37ad833
remove redundant things
LiranCaduri Feb 25, 2021
bb3b52f
fix flake8
LiranCaduri Feb 25, 2021
7f1e119
fixes
LiranCaduri Feb 26, 2021
f6d3ce0
more fixes
LiranCaduri Feb 26, 2021
fd89e01
more fixes
LiranCaduri Feb 26, 2021
e94cf66
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Feb 26, 2021
eec1b94
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Mar 7, 2021
4777fab
get this
LiranCaduri Mar 7, 2021
fee36d2
fix front
LiranCaduri Mar 19, 2021
b77f5e7
fix notifcation test error
LiranCaduri Mar 19, 2021
7d9b949
template column and fixes
LiranCaduri Mar 19, 2021
b9d0f44
fix flake8
LiranCaduri Mar 19, 2021
5b78d16
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri Mar 26, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/database/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ class Feature(Base):
route = Column(String, nullable=False)
creator = Column(String, nullable=True)
LiranCaduri marked this conversation as resolved.
Show resolved Hide resolved
description = Column(String, nullable=False)
icon = Column(String, nullable=False)
followers = Column(Integer, default=0)

users = relationship("User", secondary=UserFeature.__tablename__)

Expand Down
35 changes: 33 additions & 2 deletions app/internal/features.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

from app.database.models import Feature, UserFeature
from app.dependencies import SessionLocal, get_db
from app.internal.features_index import features
from app.internal.features_index import features, icons
from app.internal.security.dependencies import current_user
from app.internal.security.ouath2 import get_authorization_cookie
from app.internal.utils import create_model
Expand Down Expand Up @@ -46,7 +46,9 @@ async def wrapper(*args, **kwargs):
def create_features_at_startup(session: Session) -> bool:
for feat in features:
if not is_feature_exists(feature=feat, session=session):
create_feature(**feat, db=session)
icon = icons.get(feat["name"])
create_feature(**feat, icon=icon, db=session)

return True


Expand Down Expand Up @@ -90,6 +92,13 @@ def update_feature(
feature.route = feature_dict["route"]
feature.description = feature_dict["description"]
feature.creator = feature_dict["creator"]

icon = icons.get(feature.name)
if icon is None:
icon = "extension-puzzle"

feature.icon = icon

session.commit()
return feature

Expand Down Expand Up @@ -126,15 +135,22 @@ def create_feature(
route: str,
description: str,
creator: str = None,
icon: str = None,
) -> Feature:
"""Creates a feature."""
db = SessionLocal()

if icon is None:
icon = "extension-puzzle"

return create_model(
db,
Feature,
name=name,
route=route,
creator=creator,
description=description,
icon=icon,
)


Expand All @@ -145,6 +161,7 @@ def create_user_feature_association(
is_enable: bool,
) -> UserFeature:
"""Creates an association."""
add_follower(feature_id=feature_id, session=db)
return create_model(
db,
UserFeature,
Expand Down Expand Up @@ -181,3 +198,17 @@ def get_user_uninstalled_features(
)
.all()
)


def remove_follower(feature_id: int, session: SessionLocal) -> None:
feat = session.query(Feature).filter_by(id=feature_id).first()
feat.followers -= 1
if feat.followers < 0:
feat.followers = 0
session.commit()


def add_follower(feature_id: int, session: SessionLocal) -> None:
feat = session.query(Feature).filter_by(id=feature_id).first()
feat.followers += 1
session.commit()
35 changes: 35 additions & 0 deletions app/internal/features_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,41 @@
Enjoy and good luck :)
'''

'''
All icons come from https://ionicons.com/.

If you want your feature to have an icon Go To: https://ionicons.com/
and follow the next steps:

1. pick an icon and press on it, copy the name.
2. create dict in the icons list below.
3. copy and paste your feature name and your
icon name you copied earlier (follow the example).

4. And You Are Done. the icon will show automaticly.

If you dont pick an icon your feature will have a default icon.

Example to feature icon stracture:

{
.
.
.
"<feature name>": "<icon name>",
.
.
.
}
'''

# Add to last!
icons = {
"feature-panel": "albums-outline",
"Google Sync": "sync-outline"
}


'''
Example to feature stracture:

Expand Down
5 changes: 3 additions & 2 deletions app/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@
from fastapi.staticfiles import StaticFiles
from sqlalchemy.orm import Session

import app.internal.features as internal_features
from app import config
from app.database import engine, models
from app.dependencies import (
MEDIA_PATH,
SOUNDS_PATH,
STATIC_PATH,
UPLOAD_PATH,
SessionLocal,
LiranCaduri marked this conversation as resolved.
Show resolved Hide resolved
get_db,
logger,
templates,
SessionLocal,
)
from app.internal import daily_quotes, json_data_loader
import app.internal.features as internal_features
from app.internal.languages import set_ui_language
from app.internal.security.ouath2 import auth_exception_handler
from app.routers.salary import routes as salary
Expand Down Expand Up @@ -120,6 +120,7 @@ async def swagger_ui_redirect():
dayview.router,
email.router,
event.router,
features.router,
export.router,
features.router,
four_o_four.router,
Expand Down
45 changes: 21 additions & 24 deletions app/routers/features.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
from typing import List

from fastapi import APIRouter, Depends, Request
from sqlalchemy.sql import exists

from app.database.models import Feature, User, UserFeature
from app.dependencies import SessionLocal, get_db
from app.dependencies import SessionLocal, get_db, templates
from app.internal.features import (
create_user_feature_association,
get_user_installed_features,
get_user_uninstalled_features,
is_user_has_feature,
remove_follower,
)
from app.internal.security.dependencies import current_user

Expand All @@ -24,9 +23,23 @@
async def index(
request: Request,
session: SessionLocal = Depends(get_db),
) -> List[Feature]:
features = session.query(Feature).all()
return features
user: User = Depends(current_user),
) -> templates:
features = {
"installed": get_user_installed_features(
session=session,
user_id=user.user_id,
),
"uninstalled": get_user_uninstalled_features(
session=session,
user_id=user.user_id,
),
}

return templates.TemplateResponse(
"features.html",
{"request": request, "features": features},
)


@router.post("/add")
Expand Down Expand Up @@ -84,28 +97,12 @@ async def delete_user_feature_association(
if not is_exist:
return False

remove_follower(feature_id=feature_id, session=session)

session.query(UserFeature).filter_by(
feature_id=feature_id,
user_id=user.user_id,
).delete()
session.commit()

return True
LiranCaduri marked this conversation as resolved.
Show resolved Hide resolved


@router.get("/deactive")
def deactive(
request: Request,
session: SessionLocal = Depends(get_db),
user: User = Depends(current_user),
):
return get_user_uninstalled_features(user_id=user.user_id, session=session)


@router.get("/active")
def active(
request: Request,
session: SessionLocal = Depends(get_db),
user: User = Depends(current_user),
):
return get_user_installed_features(user_id=user.user_id, session=session)
81 changes: 81 additions & 0 deletions app/static/features.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
.search-box {
width: 98%;
display: flex;
flex-direction: row;
align-items: center;
font-size: var(--text_s);
border: 2px solid var(--secondary);
border-radius: 0.25rem;
padding: 0.25rem;
background-color: white;
}

.search-box * {
margin: 0 0.25rem;
}

.search-input[type=text],
.search-input:focus {
width: 100%;
outline: none;
border:none;
}

/* Feature Panel */
#features {
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 3rem;
grid-column-gap: var(--space_l);
margin: var(--space_s);
align-items: start;
width: 100%;

overflow-y: scroll;
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}

.invisible {
display: none;
position: absolute;
top:0;
}

.feature-row {
display: grid;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;

grid-template-columns: 6% 30% auto auto 15%;
background-color: var(--surface);
margin: var(--space_s) 0;
padding: var(--space_s);
border-radius: 0.25rem;
border: 2px solid transparent;
}

.feature-row:hover {
border: 2px solid var(--primary);
}

.feature-row div {
justify-self: start;
width: 100%;
}

.feature-icon {
font-size: var(--text_m);
vertical-align: middle;
}

.information {
display: none;
grid-column: 2/6;
width: 30rem;
}

.info-box {
display: block !important;
}
17 changes: 9 additions & 8 deletions app/static/global.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
--text_xxs: 0.5rem; /* 8px */
--text_xs: 0.75rem; /* 12px */
--text_s: 1rem; /* 16px */
--text_m: 1.2rem; /* 19px */
--text_l: 1.5rem; /* 24px */
--text_m: 1.2rem; /* 19px */
--text_l: 1.5rem; /* 24px */
--text_xl: 1.75rem; /* 28px */
--text_xxl: 2rem; /* 32px */

/* Spaces */
--space_xxs: 0.25rem; /* 4px */
--space_xs: 0.5rem; /* 8px */
--space_s: 0.75rem; /* 12px */
--space_m: 1.25rem; /* 20px */
--space_l: 2rem; /* 32px */
--space_xl: 4rem; /* 64px */
--space_xs: 0.5rem; /* 8px */
--space_s: 0.75rem; /* 12px */
--space_m: 1.25rem; /* 20px */
--space_l: 2rem; /* 32px */
--space_xl: 4rem; /* 64px */

/* colors */
--primary: #24396a;
Expand Down Expand Up @@ -62,4 +62,5 @@ body {
a {
text-decoration: none;
color: inherit;
}
}

Loading