resolution independent display (support 4k scaling) - #78
Merged
Conversation
sarcasticadmin
left a comment
Member
There was a problem hiding this comment.
@kylerisse this looks great!
Confirming on my own system 2560x1080 21:9 (which I realize is outside the 16:9 expectation). No 4K atm but overall is still renderers nicely:
$ make ci-test
$ ./result/scale-signs-linux-amd64 -port 8080 -refresh 10
Utilizing the time shift http://127.0.0.1:8080/??year=2026&month=3&day=7&hour=10
| - Resolution independent scaling (focus on 720P -> 4k) | ||
| - TUI client | ||
|
|
||
| ## 0.4 - Phantom Phreak |
Member
There was a problem hiding this comment.
Phanton Phreak looking good
| A [DEMO](https://signs.scalenoc.org) of this application is available online. It leverages the [SCaLE Simulator](./docs/SIMULATOR.md) and supports [time override](#time-override) URL parameters for any scale between 13x and 22x in addition to a simulated "current" SCaLE that is always active. | ||
|
|
||
| > Please note that `scale-signs` is currently meant to be displayed at 1080p only. Responsive design to support 720p -> 4k is planned for a later release. | ||
| > `scale-signs` is resolution-independent for 16:9 displays (tested 720p -> 4k). The entire design scales proportionally with viewport height, so it looks identical at any 16:9 resolution. Non-16:9 aspect ratios (e.g. portrait or narrow browser windows) may wrap text differently and are not a supported display target. |
sarcasticadmin
approved these changes
Sep 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of PR
Frontend
react-displayscales cleanly across 16:9 resolutions, upgrades sponsor logo assets to match, and bumps the Go/npm/nix toolchains. Clean up react components to pass stricter linting and just better state management in general.A live version of this version can be viewed at https://signs.scalenoc.org - running off this commit currently kylerisse/nixcfg@master...kr/20260827011449
Previous Behavior
New Behavior
calc(100vh / 67.5)(16px at 1080p), so every rem-based Tailwind utility scales proportionally with viewport height.scripts/update_sponsors.shupdated andmanager_test.goadjusted for the new dimensions.eslint-plugin-react-hooks7, Tailwind 4.3.net.Dialer.Dial→DialContextto clear a deprecation warning.To pass stricter linting after npm bumps
TimeProvider: compute the URL time offset once and lazy-initialize clock state.Clock: render fromTimeContextdirectly instead of mirroring it into local state.SponsorProvider/SponsorBanner/SponsorItem: fetch the sponsor list inside the mount effect, working cross-fade withoutsetStatein effects; drops the unusedrefreshSponsorsfrom the context API.ScheduleProvider/ScheduleCarousel: run the refresh loop inside the effect;getCurrentAndUpcomingSessionsnow takesnow: Dateso the carousel list is derived from the shared clock rather than internal state; dropsrefreshSchedulefrom the context API.Tests