gitea/modules/util
silverwind 36887ed392
Fix and rewrite contrast color calculation, fix project-related bugs ()
1. The previous color contrast calculation function was incorrect at
least for the `#84b6eb` where it output low-contrast white instead of
black. I've rewritten these functions now to accept hex colors and to
match GitHub's calculation and to output pure white/black for maximum
contrast. Before and after:
<img width="94" alt="Screenshot 2024-04-02 at 01 53 46"
src="https://github.com/go-gitea/gitea/assets/115237/00b39e15-a377-4458-95cf-ceec74b78228"><img
width="90" alt="Screenshot 2024-04-02 at 01 51 30"
src="https://github.com/go-gitea/gitea/assets/115237/1677067a-8d8f-47eb-82c0-76330deeb775">

2. Fix project-related issues:

- Expose the new `ContrastColor` function as template helper and use it
for project cards, replacing the previous JS solution which eliminates a
flash of wrong color on page load.
- Fix a bug where if editing a project title, the counter would get
lost.
- Move `rgbToHex` function to color utils.

@HesterG fyi

---------

Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
..
filebuffer Add `io.Closer` guidelines ()
rotatingfilewriter Replace `interface{}` with `any` ()
color.go Fix and rewrite contrast color calculation, fix project-related bugs ()
color_test.go Fix and rewrite contrast color calculation, fix project-related bugs ()
error.go Replace `interface{}` with `any` ()
file_unix.go Implement FSFE REUSE for golang files ()
file_unix_test.go Implement FSFE REUSE for golang files ()
file_windows.go Implement FSFE REUSE for golang files ()
io.go Fix profile render when the README.md size is larger than 1024 bytes ()
io_test.go Fix profile render when the README.md size is larger than 1024 bytes ()
keypair.go Use `crypto/sha256` ()
keypair_test.go Use `crypto/sha256` ()
legacy.go Implement FSFE REUSE for golang files ()
legacy_test.go Implement FSFE REUSE for golang files ()
pack.go Replace `interface{}` with `any` ()
pack_test.go Add support for incoming emails ()
paginate.go Replace `interface{}` with `any` ()
paginate_test.go Implement FSFE REUSE for golang files ()
path.go Upgrade to golangci-lint@v1.55.0 ()
path_test.go Use a general approach to access custom/static/builtin assets ()
remove.go Implement FSFE REUSE for golang files ()
sanitize.go Implement FSFE REUSE for golang files ()
sanitize_test.go Implement FSFE REUSE for golang files ()
sec_to_time.go Store and use seconds for timeline time comments ()
sec_to_time_test.go Implement FSFE REUSE for golang files ()
shellquote.go Implement FSFE REUSE for golang files ()
shellquote_test.go Implement FSFE REUSE for golang files ()
slice.go Performance improvements for pull request list page ()
slice_test.go Replace `util.SliceXxx` with `slices.Xxx` ()
string.go Add option to disable ambiguous unicode characters detection ()
string_test.go Implement FSFE REUSE for golang files ()
timer.go Rewrite queue ()
timer_test.go Use a general approach to access custom/static/builtin assets ()
truncate.go Add ability to set multiple redirect URIs in OAuth application UI ()
truncate_test.go Use more specific test methods ()
url.go Add `RemoteAddress` to mirrors ()
util.go Clean up log messages ()
util_test.go Add API for `Variables` ()