mirror of
https://github.com/go-gitea/gitea
synced 2024-08-26 17:23:57 +02:00
Fixes https://github.com/go-gitea/gitea/issues/30721 and overhauls the stopwatch. Time is now shown inside the "dot" icon and on both mobile and desktop. All rendering is now done by `<relative-time>`, the `pretty-ms` dependency is dropped. Desktop: <img width="557" alt="Screenshot 2024-04-29 at 22 33 27" src="https://github.com/go-gitea/gitea/assets/115237/3a46cdbf-6af2-4bf9-b07f-021348badaac"> Mobile: <img width="640" alt="Screenshot 2024-04-29 at 22 34 19" src="https://github.com/go-gitea/gitea/assets/115237/8a2beea7-bd5d-473f-8fff-66f63fd50877"> Note for tippy: Previously, tippy instances defaulted to "menu" theme, but that theme is really only meant for `.ui.menu`, so it was not optimal for the stopwatch popover. This introduces a unopinionated `default` theme that has no padding and should be suitable for all content. I reviewed all existing uses and explicitely set the desired `theme` on all of them.
148 lines
3.0 KiB
CSS
148 lines
3.0 KiB
CSS
#navbar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
background: var(--color-nav-bg);
|
|
border-bottom: 1px solid var(--color-secondary);
|
|
margin: 0 !important;
|
|
padding: 0 10px;
|
|
}
|
|
|
|
#navbar,
|
|
#navbar .navbar-left,
|
|
#navbar .navbar-right {
|
|
min-height: 49px; /* +1px border-bottom */
|
|
}
|
|
|
|
#navbar .navbar-left,
|
|
#navbar .navbar-right {
|
|
margin: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
#navbar-logo {
|
|
margin: 0;
|
|
}
|
|
|
|
#navbar .item {
|
|
min-height: 36px;
|
|
min-width: 36px;
|
|
padding-top: 3px;
|
|
padding-bottom: 3px;
|
|
display: flex;
|
|
}
|
|
|
|
#navbar > .menu > .item {
|
|
color: var(--color-nav-text);
|
|
}
|
|
|
|
#navbar .dropdown .item {
|
|
justify-content: stretch;
|
|
}
|
|
|
|
#navbar a.item:hover,
|
|
#navbar button.item:hover {
|
|
background: var(--color-nav-hover-bg);
|
|
}
|
|
|
|
#navbar .secondary.menu > .item > .svg,
|
|
#navbar .right.menu > .item > .svg {
|
|
margin-right: 0;
|
|
}
|
|
|
|
@media (max-width: 767.98px) {
|
|
#navbar {
|
|
align-items: stretch;
|
|
}
|
|
/* hide all items */
|
|
#navbar .item {
|
|
display: none;
|
|
}
|
|
#navbar #navbar-logo {
|
|
display: flex;
|
|
}
|
|
/* show the first navbar item (logo and its mobile right items) */
|
|
#navbar .navbar-left {
|
|
flex: 1;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
#navbar .navbar-mobile-right {
|
|
display: flex;
|
|
margin-left: auto !important;
|
|
width: auto !important;
|
|
}
|
|
#navbar .navbar-mobile-right > .item {
|
|
display: flex;
|
|
width: auto !important;
|
|
}
|
|
/* show items if the navbar is open */
|
|
#navbar.navbar-menu-open {
|
|
padding-bottom: 8px;
|
|
}
|
|
#navbar.navbar-menu-open,
|
|
#navbar.navbar-menu-open .navbar-right {
|
|
flex-direction: column;
|
|
}
|
|
#navbar.navbar-menu-open .navbar-left {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
}
|
|
#navbar.navbar-menu-open .item {
|
|
display: flex;
|
|
width: 100%;
|
|
margin: 0;
|
|
}
|
|
#navbar.navbar-menu-open .navbar-left #navbar-logo {
|
|
justify-content: flex-start;
|
|
width: auto;
|
|
}
|
|
#navbar.navbar-menu-open .navbar-left .navbar-mobile-right {
|
|
justify-content: flex-end;
|
|
width: 50%;
|
|
min-height: 48px;
|
|
}
|
|
#navbar #mobile-stopwatch-icon,
|
|
#navbar #mobile-notifications-icon {
|
|
margin-right: 6px !important;
|
|
}
|
|
}
|
|
|
|
#navbar a.item:hover .notification_count,
|
|
#navbar a.item:hover .header-stopwatch-dot {
|
|
border-color: var(--color-nav-hover-bg);
|
|
}
|
|
|
|
#navbar a.item .notification_count,
|
|
#navbar a.item .header-stopwatch-dot {
|
|
color: var(--color-nav-bg);
|
|
padding: 0 3.75px;
|
|
font-size: 12px;
|
|
line-height: 12px;
|
|
font-weight: var(--font-weight-bold);
|
|
background: var(--color-primary);
|
|
border: 2px solid var(--color-nav-bg);
|
|
position: absolute;
|
|
left: 6px;
|
|
top: -9px;
|
|
min-width: 17px;
|
|
height: 17px;
|
|
border-radius: 11px; /* (height + 2 * borderThickness) / 2 */
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 1; /* prevent menu button background from overlaying icon */
|
|
user-select: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.secondary-nav {
|
|
background: var(--color-secondary-nav-bg) !important; /* important because of .ui.secondary.menu */
|
|
}
|
|
|
|
.issue-navbar {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|