mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 22:41:03 +00:00 
			
		
		
		
	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.
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
---
Conflict resolution: Trivial.
(cherry picked from commit 36887ed3921d03f1864360c95bd2ecf853bfbe72)
(cherry picked from commit f6c0c39f1a)
		
	
			
		
			
				
	
	
		
			110 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
| .issue-list-toolbar {
 | |
|   display: flex;
 | |
|   flex-wrap: wrap-reverse;
 | |
|   justify-content: space-between;
 | |
|   align-items: flex-start;
 | |
|   gap: 1rem;
 | |
|   margin-top: 1rem;
 | |
| }
 | |
| 
 | |
| .issue-list-toolbar-left {
 | |
|   display: flex;
 | |
|   align-items: center;
 | |
| }
 | |
| 
 | |
| .issue-list-toolbar-right .filter.menu {
 | |
|   flex-direction: row;
 | |
|   flex-wrap: wrap;
 | |
| }
 | |
| 
 | |
| .issue-list-new.button {
 | |
|   margin-right: 0;
 | |
| }
 | |
| 
 | |
| .list-header-issues {
 | |
|   min-height: var(--repo-header-issue-min-height);
 | |
| }
 | |
| 
 | |
| @media (max-width: 767.98px) {
 | |
|   .issue-list-navbar {
 | |
|     order: 0;
 | |
|   }
 | |
|   .issue-list-new {
 | |
|     order: 1;
 | |
|     margin-left: auto !important;
 | |
|   }
 | |
|   .issue-list-search {
 | |
|     order: 2 !important;
 | |
|   }
 | |
|   /* Don't use flex wrap on mobile as it takes too much vertical space.
 | |
|    * Only set overflow properties on mobile screens, because while the
 | |
|    * CSS trick to pop out from overflowing works on desktop screen, it
 | |
|    * has a massive flaw that it cannot inherited any max width from it's 'real'
 | |
|    * parent and therefor ends up taking more vertical space than is desired.
 | |
|    **/
 | |
|   .issue-list-toolbar-right .filter.menu {
 | |
|     flex-wrap: nowrap;
 | |
|     overflow-x: auto;
 | |
|     overflow-y: hidden;
 | |
|   }
 | |
| 
 | |
|   /* The following few CSS was created with care and built with the information
 | |
|    * from CSS-Tricks: https://css-tricks.com/popping-hidden-overflow/
 | |
|   */
 | |
| 
 | |
|   /* It's important that every element up to .issue-list-toolbar-right doesn't
 | |
|    * have a position set, such that element that wants to pop out will use
 | |
|    * .issue-list-toolbar-right as 'clip parent' and thereby avoids the
 | |
|    * overflow-y: hidden.
 | |
|   */
 | |
|   .issue-list-toolbar-right .filter.menu > .dropdown.item {
 | |
|     position: initial;
 | |
|   }
 | |
|   /* It's important that this element and not an child has `position` set.
 | |
|    * Set width so that overflow-x knows where to stop overflowing.
 | |
|   */
 | |
|   .issue-list-toolbar-right {
 | |
|     position: relative;
 | |
|     width: 100%;
 | |
|   }
 | |
| }
 | |
| 
 | |
| #issue-list .flex-item-body .branches {
 | |
|   display: inline-flex;
 | |
| }
 | |
| 
 | |
| #issue-list .flex-item-body .branches .branch {
 | |
|   background-color: var(--color-secondary-alpha-40);
 | |
|   border-radius: var(--border-radius);
 | |
|   padding: 0 4px;
 | |
| }
 | |
| 
 | |
| #issue-list .flex-item-body .branches .truncated-name {
 | |
|   white-space: nowrap;
 | |
|   overflow: hidden;
 | |
|   text-overflow: ellipsis;
 | |
|   max-width: 10em;
 | |
| }
 | |
| 
 | |
| #issue-list .flex-item-body .checklist progress {
 | |
|   margin-left: 2px;
 | |
|   width: 80px;
 | |
|   height: 6px;
 | |
|   display: inline-block;
 | |
| }
 | |
| 
 | |
| #issue-list .flex-item-body .checklist progress::-webkit-progress-value {
 | |
|   background-color: var(--color-secondary-dark-4);
 | |
| }
 | |
| 
 | |
| #issue-list .flex-item-body .checklist progress::-moz-progress-bar {
 | |
|   background-color: var(--color-secondary-dark-4);
 | |
| }
 | |
| 
 | |
| .archived-label-filter {
 | |
|   margin-left: 10px;
 | |
|   font-size: 12px;
 | |
|   display: flex !important;
 | |
|   margin-bottom: 8px;
 | |
|   min-width: fit-content;
 | |
| }
 |