diff --git a/odoo-community-developers/index.html b/odoo-community-developers/index.html index 7b47515..e82e680 100644 --- a/odoo-community-developers/index.html +++ b/odoo-community-developers/index.html @@ -336,6 +336,7 @@ display: flex; flex-direction: column; gap: 0.7rem; + position: relative; /* the OCA badge is anchored to the frame, not to the flow */ } .dev-card > :last-child { margin-bottom: 0; @@ -373,6 +374,7 @@ font-size: 1.3rem; color: var(--midnight); margin: 0; + overflow-wrap: anywhere; /* a name with no space in it cannot push the card open */ } .dev-focus { margin: 0.15rem 0 0; @@ -685,11 +687,13 @@ } /* The OCA Member Profile badge — a link built from a link the freelancer - supplied. It sits with the name, not in the links row. Never colour alone: - it is a filled pill and its own words are the link text. */ + supplied. It sits on the card's frame, top right, inset from the corner; + it stays in the DOM with the name (the name is read first). Never colour + alone: it is a filled pill and its own words are the link text. */ .dev-oca-badge { - display: inline-block; - margin-top: 0.3rem; + position: absolute; + top: 0.85rem; + right: 0.85rem; font-size: 0.72rem; line-height: 1.4; padding: 0.15rem 0.6rem; @@ -699,6 +703,15 @@ color: var(--midnight); font-weight: 600; } + /* Reserve the badge's band for the badge: the header starts below it, so the + name keeps the card's full width, wraps freely, and can never reach the + badge. A horizontal reserve was measured and rejected — at 375 px the card + leaves the name column 171 px, and the badge's 135 px would cut it to 42 px. + Without :has() there is no reserve; the badge then sits in the band above + the name's first line and still does not collide. */ + .dev-card:has(.dev-oca-badge) { + padding-top: 3.15rem; + } .dev-oca-badge:hover { background: rgba(201, 162, 39, 0.32); color: var(--midnight);