Skip to content

Commit 5ba922a

Browse files
author
Cristian Yáñez
committed
feat(2285): add badges and tiers to Icon component
1 parent cef4369 commit 5ba922a

18 files changed

Lines changed: 91 additions & 37 deletions

core/mock_data.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77

88
class SharedResources:
9-
badge_img = f"{settings.STATIC_URL}img/v3/badges"
10-
119
demo_posts = [
1210
{
1311
"title": "A talk by Richard Thomson at the Utah C++ Programmers Group",
@@ -20,7 +18,7 @@ class SharedResources:
2018
"profile_url": "#",
2119
"role": "Contributor",
2220
"avatar_url": "https://ui-avatars.com/api/?name=Richard+Thomson&size=48",
23-
"badge_url": f"{badge_img}/badge-first-place.png",
21+
"badge": "badge-gold",
2422
},
2523
},
2624
{
@@ -34,7 +32,7 @@ class SharedResources:
3432
"profile_url": "#",
3533
"role": "Maintainer",
3634
"avatar_url": "https://ui-avatars.com/api/?name=Peter+Dimov&size=48",
37-
"badge_url": f"{badge_img}/badge-bronze.png",
35+
"badge": "badge-bronze",
3836
},
3937
},
4038
{
@@ -204,7 +202,7 @@ class SharedResources:
204202
"profile_url": "#",
205203
"avatar_url": "/static/img/v3/demo_page/Avatar.png",
206204
"role": "Contributor",
207-
"badge_url": "/static/img/v3/demo_page/Badge.svg",
205+
"badge": "badge-gold",
208206
},
209207
},
210208
{
@@ -214,7 +212,7 @@ class SharedResources:
214212
"profile_url": "#",
215213
"avatar_url": "/static/img/v3/demo_page/Avatar.png",
216214
"role": "Contributor",
217-
"badge_url": "/static/img/v3/demo_page/Badge.svg",
215+
"badge": "badge-gold",
218216
},
219217
},
220218
{
@@ -224,7 +222,7 @@ class SharedResources:
224222
"profile_url": "#",
225223
"avatar_url": "/static/img/v3/demo_page/Avatar.png",
226224
"role": "Contributor",
227-
"badge_url": "/static/img/v3/demo_page/Badge.svg",
225+
"badge": "badge-gold",
228226
},
229227
},
230228
{
@@ -234,7 +232,7 @@ class SharedResources:
234232
"profile_url": "#",
235233
"avatar_url": "/static/img/v3/demo_page/Avatar.png",
236234
"role": "Contributor",
237-
"badge_url": "/static/img/v3/demo_page/Badge.svg",
235+
"badge": "badge-gold",
238236
},
239237
},
240238
]
@@ -247,7 +245,7 @@ class SharedResources:
247245
"name": "Vinnie Falco",
248246
"role": "Author",
249247
"avatar_url": f"{settings.STATIC_URL}img/v3/demo_page/Avatar.png",
250-
"badge_url": f"{settings.STATIC_URL}img/v3/demo_page/Badge.svg",
248+
"badge": "badge-gold",
251249
"bio": "Big C++ fan. Not quite kidney-donation level, but close.",
252250
},
253251
{
@@ -260,7 +258,7 @@ class SharedResources:
260258
"name": "Dave Abrahams",
261259
"role": "Maintainer",
262260
"avatar_url": f"{settings.STATIC_URL}img/v3/demo_page/Avatar.png",
263-
"badge_url": f"{settings.STATIC_URL}img/v3/demo_page/Badge.svg",
261+
"badge": "badge-gold",
264262
"bio": "Contributor to Boost since 2009.",
265263
},
266264
],

core/views.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1723,16 +1723,14 @@ def get_context_data(self, **kwargs):
17231723
"profile_url": "#",
17241724
"role": "Author",
17251725
"avatar_url": f"{settings.STATIC_URL}img/v3/demo_page/Avatar.png",
1726-
"badge_url": f"{settings.STATIC_URL}img/v3/badges/badge-first-place.png",
1727-
"badge": "",
1726+
"badge": "badge-gold",
17281727
"bio": "",
17291728
},
17301729
{
17311730
"name": "Richard Thomson",
17321731
"profile_url": "#",
17331732
"role": "Contributor",
17341733
"avatar_url": "",
1735-
"badge_url": "",
17361734
"badge": "",
17371735
"bio": "",
17381736
},
@@ -1741,16 +1739,14 @@ def get_context_data(self, **kwargs):
17411739
"profile_url": "#",
17421740
"role": "Contributor",
17431741
"avatar_url": "",
1744-
"badge_url": f"{settings.STATIC_URL}img/v3/badges/badge-bronze.png",
1745-
"badge": "",
1742+
"badge": "badge-bronze",
17461743
"bio": "Big C++ fan. Not quite kidney-donation level, but close.",
17471744
},
17481745
{
17491746
"name": "Richard Thomson",
17501747
"profile_url": "#",
17511748
"role": "Author",
17521749
"avatar_url": "",
1753-
"badge_url": "",
17541750
"badge": "",
17551751
"bio": "Big C++ fan. Not quite kidney-donation level, but close.",
17561752
},
@@ -1762,8 +1758,7 @@ def get_context_data(self, **kwargs):
17621758
"profile_url": "#",
17631759
"role": "Author",
17641760
"avatar_url": f"{settings.STATIC_URL}img/v3/demo_page/Avatar.png",
1765-
"badge_url": f"{settings.STATIC_URL}img/v3/badges/badge-first-place.png",
1766-
"badge": "",
1761+
"badge": "badge-gold",
17671762
"bio": "",
17681763
}
17691764
] + 10 * [
@@ -1772,8 +1767,7 @@ def get_context_data(self, **kwargs):
17721767
"profile_url": "#",
17731768
"role": "Contributor",
17741769
"avatar_url": "",
1775-
"badge_url": f"{settings.STATIC_URL}img/v3/badges/badge-bronze.png",
1776-
"badge": "",
1770+
"badge": "badge-bronze",
17771771
"bio": "",
17781772
}
17791773
]
@@ -1900,7 +1894,7 @@ def get_context_data(self, **kwargs):
19001894
"name": author.display_name if author else "Unknown",
19011895
"role": "Contributor",
19021896
"avatar_url": author.get_avatar_url() if author else "",
1903-
"badge_url": f"{badge_img}/badge-first-place.png",
1897+
"badge": "badge-gold",
19041898
},
19051899
"doc_url": reverse(
19061900
"library-detail",

libraries/utils.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -495,12 +495,7 @@ def get_avatar(user):
495495
return url
496496
return getattr(user.commitauthor, "avatar_url", "") or ""
497497

498-
badge_img = f"{settings.STATIC_URL}img/v3/badges"
499-
medals = [
500-
f"{badge_img}/badge-first-place.png",
501-
f"{badge_img}/badge-second-place.png",
502-
f"{badge_img}/badge-bronze.png",
503-
]
498+
medals = ["badge-gold", "badge-silver", "badge-bronze"]
504499

505500
author_dicts = []
506501
for user in combined:
@@ -509,7 +504,7 @@ def get_avatar(user):
509504
"name": user.display_name or user.get_full_name(),
510505
"role": roles[user.id],
511506
"avatar_url": get_avatar(user),
512-
"badge_url": (
507+
"badge": (
513508
medals[len(author_dicts)] if len(author_dicts) < len(medals) else ""
514509
),
515510
"bio": "",
@@ -522,7 +517,7 @@ def get_avatar(user):
522517
"name": ca.display_name,
523518
"role": "Contributor",
524519
"avatar_url": ca.avatar_url or "",
525-
"badge_url": (
520+
"badge": (
526521
medals[len(author_dicts)] if len(author_dicts) < len(medals) else ""
527522
),
528523
"bio": "",

static/css/v3/badge.css

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,29 @@
2121
color: var(--color-text-on-accent);
2222
pointer-events: none;
2323
}
24+
25+
/**
26+
* Achievement counter – rendered by icon.html with icon_name="achievement-count".
27+
* Width/height set inline from icon_size (Figma default: 24px).
28+
*/
29+
.icon-achievement-count {
30+
display: inline-flex;
31+
flex-direction: column;
32+
align-items: center;
33+
justify-content: center;
34+
gap: var(--space-default);
35+
flex-shrink: 0;
36+
aspect-ratio: 1 / 1;
37+
box-sizing: border-box;
38+
padding: var(--space-s) var(--space-xs);
39+
border-radius: var(--border-radius-s);
40+
background: var(--color-icon-brand-accent);
41+
font-size: var(--font-size-xs);
42+
font-weight: var(--font-weight-regular);
43+
line-height: var(--line-height-tight);
44+
letter-spacing: var(--letter-spacing-tight);
45+
text-align: center;
46+
margin: 0;
47+
color: var(--color-text-on-accent);
48+
pointer-events: none;
49+
}

static/img/v3/badges/boost_day.png

2.35 KB
Loading

static/img/v3/badges/bronze.png

5.02 KB
Loading

static/img/v3/badges/diamond.png

5.47 KB
Loading

static/img/v3/badges/gold.png

5.33 KB
Loading

static/img/v3/badges/platinum.png

5.24 KB
Loading

static/img/v3/badges/silver.png

4.61 KB
Loading

0 commit comments

Comments
 (0)