Styles Update

This commit is contained in:
Rokojori 2026-07-15 17:13:06 +02:00
parent acba5c819b
commit 5e27849fa3
7 changed files with 42 additions and 76 deletions

View File

@ -1,3 +1,5 @@
@import url('https://styles.rokojori.com/get-font?family=barlow&weights=100,400,700,900');
project-list-default { project-list-default {
display: block; display: block;
min-height: 100vh; min-height: 100vh;
@ -186,6 +188,7 @@ project-list-default {
.pld-cp-input { .pld-cp-input {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
font-family: Barlow;
} }
.pld-cp-actions { .pld-cp-actions {
@ -193,6 +196,7 @@ project-list-default {
gap: 0.5rem; gap: 0.5rem;
justify-content: flex-end; justify-content: flex-end;
margin-top: 1rem; margin-top: 1rem;
font-family: Barlow;
} }
/* ── Overlay buttons on badge ────────────── */ /* ── Overlay buttons on badge ────────────── */
@ -401,7 +405,7 @@ project-list-default {
border-radius: 5px; border-radius: 5px;
color: #fff; color: #fff;
font-size: 0.85rem; font-size: 0.85rem;
font-family: inherit; font-family: Barlow;
} }
.pld-mp-select { .pld-mp-select {
@ -422,6 +426,8 @@ project-list-default {
cursor: pointer; cursor: pointer;
font-size: 0.85rem; font-size: 0.85rem;
transition: background 0.14s, color 0.14s; transition: background 0.14s, color 0.14s;
font-family: Barlow;
text-transform: uppercase;
} }
.pld-mp-btn:hover { .pld-mp-btn:hover {

View File

@ -1,20 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dashboard — Roject</title>
<link rel="stylesheet" href="/components/app-nav/app-nav.css">
</head>
<body>
<app-nav></app-nav>
<main>
<h1>Dashboard</h1>
<nav class="dashboard-links">
<a href="/groups.html">Manage Groups</a>
<a href="/projects.html">Manage Projects</a>
</nav>
</main>
<script type="module" src="/components/app-nav/app-nav.js"></script>
</body>
</html>

View File

@ -1,16 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Groups — Roject</title>
<link rel="stylesheet" href="/components/app-nav/app-nav.css">
<link rel="stylesheet" href="/components/group-editor/group-editor.css">
</head>
<body>
<app-nav></app-nav>
<group-editor></group-editor>
<script type="module" src="/components/app-nav/app-nav.js"></script>
<script type="module" src="/components/group-editor/group-editor.js"></script>
</body>
</html>

View File

@ -4,9 +4,6 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Roject</title> <title>Roject</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Barlow:ital,wght@1,900;1,700&display=swap">
<link rel="stylesheet" href="/components/confirm-dialog/confirm-dialog.css"> <link rel="stylesheet" href="/components/confirm-dialog/confirm-dialog.css">
<link rel="stylesheet" href="/components/project-home/project-home.css"> <link rel="stylesheet" href="/components/project-home/project-home.css">
<link rel="stylesheet" href="/components/project-list-default/project-list-default.css"> <link rel="stylesheet" href="/components/project-list-default/project-list-default.css">

View File

@ -1,17 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Projects — Roject</title>
<link rel="stylesheet" href="/components/app-nav/app-nav.css">
<link rel="stylesheet" href="/components/project-editor/project-editor.css">
<link rel="stylesheet" href="/components/confirm-dialog/confirm-dialog.css">
</head>
<body>
<app-nav></app-nav>
<project-editor></project-editor>
<script type="module" src="/components/app-nav/app-nav.js"></script>
<script type="module" src="/components/project-editor/project-editor.js"></script>
</body>
</html>

View File

@ -23,28 +23,27 @@
<div class="lane-header">MVP</div> <div class="lane-header">MVP</div>
<task-item class="blue hide-content"> <task-item class="blue hide-content">
<task-title>Add rokojori-auth lookup-email endpoint</task-title> <task-title>styles.rokojori.com</task-title>
<task-content> <task-content>
Project members are currently stored by email (Option B interim). To migrate to New asset and font hosting service at styles.rokojori.com. Hosts Google Fonts
user-ID-based membership the two services need a server-to-server lookup call. (downloaded and self-served), CSS presets, components, and images for use
across all rokojori websites.
In rokojori-auth: Auth via shared JWT cookie from rokojori-auth. Access gated by requireAccess
— Add POST /api/auth/lookup-email route middleware (already designed and documented in rokojori-auth workspace).
— Body: { email: string } PATCH /api/admin/users/:id/products is live in rokojori-auth — assign the
— Auth: Authorization: Bearer &lt;SERVICE_SECRET&gt; header (shared env var, not a user JWT) "styles" product to grant access.
— Returns { id, email } on success, 404 if no account exists for that email
— Add SERVICE_SECRET to rokojori-auth .env and its deployment config
In Roject: Pages:
Add ROJECT_SERVICE_SECRET to .env (must match rokojori-auth) / — logged-out or no-permission users see "STYLES" + login button linking
— In POST /api/projects/:id/members: call account.rokojori.com/api/auth/lookup-email, to account.rokojori.com/login?redirect=https://styles.rokojori.com;
receive the user ID, store member_id as the user ID instead of the email logged-in users with access see list of available sections
In source/server/projectAccess.ts change the one line in memberMatchesUser() /list-fonts — preview-sentence input at top, then all font families rendered
from member.member_id === user.email with that sentence
to member.member_id === user.userId — /add-fonts — preview-sentence input + font-family name input; downloads from
— Write a one-off migration script to rewrite existing project_members records: Google Fonts and generates a stylesheet
for each member row, call lookup-email with the stored email, replace member_id
with the returned user ID Access rules: role:admin, role:user + product:styles, role:user + product:premium
</task-content> </task-content>
</task-item> </task-item>

View File

@ -66,6 +66,23 @@
</task-content> </task-content>
</task-item> </task-item>
<task-item class="blue hide-content">
<task-title>Roject: wire lookup-email for member storage migration</task-title>
<task-content>
The rokojori-auth side (POST /api/auth/lookup-email) is live.
Remaining Roject-side work:
— Add SERVICE_SECRET to Roject .env (must match rokojori-auth SERVICE_SECRET)
— In POST /api/projects/:id/members: call account.rokojori.com/api/auth/lookup-email,
receive the user ID, store member_id as the user ID instead of the email
— In source/server/projectAccess.ts change memberMatchesUser()
from member.member_id === user.email
to member.member_id === user.userId
— Write a one-off migration script: for each member row, call lookup-email
with the stored email and replace member_id with the returned user ID
</task-content>
</task-item>
<task-item class="blue hide-content"> <task-item class="blue hide-content">
<task-title>Switch Gitea webhook to dev branch</task-title> <task-title>Switch Gitea webhook to dev branch</task-title>
<task-content> <task-content>