Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
22 changes: 22 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: CI

on:
pull_request:
push:
branches: [master]

jobs:
check:
name: check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run format:check
- run: npm run check
- run: npm run build
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22
10 changes: 10 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["typescript", "react", "jsx-a11y"],
"categories": { "correctness": "error" },
"rules": {
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn"
},
"ignorePatterns": ["dist", "node_modules", "public"]
}
5 changes: 5 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
dist
node_modules
package-lock.json
public
.claude
3 changes: 3 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"printWidth": 100
}
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,14 @@ Everything, including the JPEG encoder, the gain-map container and the ICC profi
from scratch in TypeScript and runs in a Web Worker. Nothing is uploaded anywhere.

npm install
npm run dev # http://localhost:5173
npm run dev # http://localhost:5180
npm run dev:lan # same, reachable from a phone on your Wi-Fi
npm run check # checks the image modules in Node, no browser needed
npm run build # production build in dist/
npm run check # tests for the image modules (Vitest, no browser needed)
npm run lint # oxlint
npm run format # Prettier (format:check only verifies)
npm run build # type check + production build in dist/

CI runs lint, format:check, check and build on every pull request. Node 22 (see `.nvmrc`).

Check on an HDR screen (Chrome 137+, Safari 26 / iOS 26): the glowing parts should look brighter
than white. On other screens and browsers the files still look like normal pictures.
3 changes: 2 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="#060919" />
<meta
Expand Down Expand Up @@ -34,6 +34,7 @@
/>
<meta name="twitter:image" content="https://glow.bereg.dev/og-image.png" />
</head>

<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
Expand Down
Loading
Loading