Top Emotes
+Top shared emotes
++ + + + +
diff --git a/LICENSE b/LICENSE index cd4eb7f..54a78a7 120000 --- a/LICENSE +++ b/LICENSE @@ -1 +1 @@ -LICENSES/EUPL-1.2.txt \ No newline at end of file +LICENSES/EUPL-1.2.txt diff --git a/greenhouse/web/asgi.py b/greenhouse/web/asgi.py index 3a6830e..46bcda3 100644 --- a/greenhouse/web/asgi.py +++ b/greenhouse/web/asgi.py @@ -7,7 +7,8 @@ from typing import AsyncIterator from starlette.applications import Starlette -from starlette.routing import Route +from starlette.routing import Route, Mount +from starlette.staticfiles import StaticFiles import greenhouse.web @@ -25,6 +26,9 @@ async def lifespan(app) -> AsyncIterator[None]: debug=greenhouse.web.DEBUG, routes=[ Route('/', routes.homepage), + Route('/dashboard', routes.dashboard), + Route('/top-emotes', routes.top_emotes), + Mount('/static', StaticFiles(directory='greenhouse/web/static'), name='static') ], lifespan=lifespan, ) diff --git a/greenhouse/web/routes.py b/greenhouse/web/routes.py index 366d746..0c8a6d1 100644 --- a/greenhouse/web/routes.py +++ b/greenhouse/web/routes.py @@ -3,14 +3,20 @@ # SPDX-License-Identifier: EUPL-1.2 import importlib.resources - +from starlette.requests import Request from starlette.templating import Jinja2Templates - +from starlette.responses import Response templates = Jinja2Templates( directory=importlib.resources.files('greenhouse.web.templates'), ) -async def homepage(request): +async def homepage(request: Request) -> Response: return templates.TemplateResponse('index.html', {'request': request}) + +async def dashboard(request: Request) -> Response: + return templates.TemplateResponse('dashboard.html', {'request': request}) + +async def top_emotes(request: Request) -> Response: + return templates.TemplateResponse('top-emotes.html', {'request': request}) diff --git a/greenhouse/web/static/style.css b/greenhouse/web/static/style.css new file mode 100644 index 0000000..ffbb3fb --- /dev/null +++ b/greenhouse/web/static/style.css @@ -0,0 +1,64 @@ +/* + * SPDX-FileCopyrightText: 2023 peepo.world developers + * + * SPDX-License-Identifier: EUPL-1.2 + */ + +@import url("https://use.typekit.net/sfm4zwf.css"); +#site-name { + font-family: rodchenko-cond, sans-serif; + font-weight: 700; + font-style: normal; +} + +input[type="checkbox"][id^="myCheckbox"] { + display: none; + + } + + label { + position: relative; + cursor: pointer; + width: 100%; + height: 100%; + display: block; + } + + label:before { + background-color: white; + color: white; + content: " "; + display: block; + border-radius: 50%; + border: 1px solid grey; + position: absolute; + top: -5px; + left: -5px; + width: 25px; + height: 25px; + text-align: center; + line-height: 28px; + transition-duration: 0.4s; + transform: scale(0); + } + + label img { + transition-duration: 0.2s; + transform-origin: 50% 50%; + } + + :checked + label { + border-color: #ddd; + } + + :checked + label:before { + content: "✓"; + background-color: #485fc7; + transform: scale(1); + } + + :checked + label img { + transform: scale(0.9); + /* box-shadow: 0 0 5px #333; */ + z-index: -1; + } diff --git a/greenhouse/web/static/style.scss b/greenhouse/web/static/style.scss new file mode 100644 index 0000000..de40fd5 --- /dev/null +++ b/greenhouse/web/static/style.scss @@ -0,0 +1,11 @@ +/* + * SPDX-FileCopyrightText: 2023 peepo.world developers + * + * SPDX-License-Identifier: EUPL-1.2 + */ + +@import "node_modules/bulma/sass/utilities/initial-variables"; + + + +@import "node_modules/bulma/bulma"; diff --git a/greenhouse/web/templates/base.html b/greenhouse/web/templates/base.html new file mode 100644 index 0000000..298031e --- /dev/null +++ b/greenhouse/web/templates/base.html @@ -0,0 +1,129 @@ + + + + + +
+ {% block head %} + + +Top shared emotes
+