prime8dev

prime8dev
git clone https://git.prime8.dev/prime8dev.git
Log | Files | Refs | README | LICENSE

commit 6c8dfe04ea11b6cf883fb9dd01dbf5972cb5b90b
parent 0e96105afbe5a3b671dc505f34bca6b21c27f70e
Author: Damian Myrda <damian@prime8.dev>
Date:   Fri, 23 Oct 2026 00:59:17 +0000

web: tags under the project path, clone on the path's line

Diffstat:
Minternal/web/styles/project_detail.css | 34++++++++++++++++++++++++++++++----
Minternal/web/templates/partials/project_detail.gohtml | 4++--
2 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/internal/web/styles/project_detail.css b/internal/web/styles/project_detail.css @@ -1,12 +1,29 @@ +/* path and clone share the top line; the tags sit under the path, so a long + clone url never pushes them onto a wrapped line of their own */ .detail-header { - display: flex; - flex-wrap: wrap; + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + grid-template-areas: + "path clone" + "tags tags"; align-items: center; gap: 8px 14px; margin-bottom: 16px; } .detail-path { + grid-area: path; +} + +.tech-stack { + grid-area: tags; +} + +.clone-bar { + grid-area: clone; +} + +.detail-path { min-width: 0; font-size: var(--fs-19); font-weight: 400; @@ -206,8 +223,17 @@ @media (max-width: 768px) { .detail-header { - align-items: flex-start; - flex-direction: column; + grid-template-columns: minmax(0, 1fr); + grid-template-areas: + "path" + "tags" + "clone"; + align-items: start; + } + + .clone-bar { + margin-left: 0; + justify-self: start; } .detail-path { diff --git a/internal/web/templates/partials/project_detail.gohtml b/internal/web/templates/partials/project_detail.gohtml @@ -3,9 +3,9 @@ <div class="detail-content" data-id="{{.Project.ID}}"> <div class="detail-header"> <h2 class="detail-path"><span class="detail-path-text">~/projects/{{.Project.Name}}</span></h2> - <div class="tech-stack"> + {{if .Project.Tech}}<div class="tech-stack"> {{range .Project.Tech}}<span class="tag {{tagClass .}}">{{.}}</span>{{end}} - </div> + </div>{{end}} {{if .Project.Repo}} <div class="clone-bar" data-clone> <div class="clone-tabs" role="radiogroup" aria-label="Clone protocol">