Skip to content

Commit eb407ab

Browse files
committed
Update signatories list
1 parent 919f4b6 commit eb407ab

File tree

2 files changed

+145
-24
lines changed

2 files changed

+145
-24
lines changed

src/data/signatures.yaml

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,117 @@
11
- organization: "AdGuard"
22
url: "adguard.com"
33
poc: "Daria Magdik <daria@adguard.com>"
4-
- organization: "App Fair Project"
4+
region: CY
5+
- organization: "The App Fair Project"
56
url: "appfair.org"
67
poc: "Marc Prud'hommeaux <marc@appfair.org>"
7-
- organization: "Article 19"
8+
region: FR
9+
- organization: "ARTICLE 19"
810
url: "article19.org"
911
poc: "Mark Dempsey <mark.dempsey@article19.org>"
12+
region: GB
1013
- organization: "Aurora Store"
1114
url: "auroraoss.com"
1215
poc: "Vishal Bakhai <vishal@auroraoss.com>"
13-
- organization: "Center for Digital Progress"
16+
region: IN
17+
- organization: "The Center for Digital Progress (D64)"
1418
url: "d-64.org"
1519
poc: "Esther Bauer - D64 – Zentrum für Digitalen Fortschritt <buero@d-64.org>"
16-
- organization: "Chaos Computer Club"
20+
region: DE
21+
- organization: "The Chaos Computer Club (CCC)"
1722
url: "ccc.de"
1823
poc: "Elina Eickstädt <presse@ccc.de>"
19-
- organization: "Codeberg"
24+
region: DE
25+
- organization: "Codeberg e.V."
2026
url: "codeberg.org"
2127
poc: "Gusted <contact@codeberg.org>"
28+
region: DE
2229
- organization: "Cryptee"
2330
url: "crypt.ee"
2431
poc: "John Ozbay <hello@johnozbay.com>"
25-
- organization: "Digital Rights Foundation"
32+
region: EE
33+
- organization: "The Digital Rights Foundation"
2634
url: "digitalrightsfoundation.pk"
2735
poc: "Nighat Dad <nighat@digitalrightsfoundation.pk>"
36+
region: PK
2837
- organization: "Digital Rights Watch"
2938
url: "digitalrightswatch.org.au"
3039
poc: "Tom Sulston <tom@digitalrightswatch.org.au>"
31-
- organization: "Ente"
32-
url: "ente.io"
33-
poc: "Vishnu Mohandas <vishnu@ente.io>"
40+
region: AU
3441
- organization: "epicenter.works – for digital rights"
3542
url: "epicenter.works"
3643
poc: "Thomas Lohninger <thomas.lohninger@epicenter.works>"
37-
- organization: "E Foundation"
44+
region: AT
45+
- organization: "/e/ Foundation"
3846
url: "e.foundation"
3947
poc: "Rik Viergever <rikviergever@e.email>"
48+
region: FR
4049
- organization: "European Digital Rights (EDRi)"
4150
url: "edri.org"
4251
poc: "Jan Penfrat <jan.penfrat@edri.org>"
43-
- organization: "Electronic Frontier Foundation (EFF)"
52+
region: BE
53+
- organization: "The Electronic Frontier Foundation (EFF)"
4454
url: "eff.org"
4555
poc: "Mitch Stoltz <mitch@eff.org>"
56+
region: US
4657
- organization: "F-Droid"
4758
url: "f-droid.org"
4859
poc: "board@f-droid.org"
49-
- organization: "Free Software Foundation Europe (FSFE)"
60+
region: NL
61+
- organization: "The Free Software Foundation Europe (FSFE)"
5062
url: "fsfe.org"
5163
poc: "Lucas Lasota <lucas.lasota@fsfe.org>"
52-
- organization: "Guardian Project"
64+
region: DE
65+
- organization: "The Guardian Project"
5366
url: "guardianproject.info"
5467
poc: "Nathan Freitas <nathan@guardianproject.info>"
68+
region: US
5569
- organization: "Obtainium"
5670
url: "obtainium.imranr.dev"
5771
poc: "Imran <contact@imranr.dev>"
58-
- organization: "OpenStreetMap Foundation"
72+
- organization: "The OpenStreetMap Foundation (OSMF)"
5973
url: "osmfoundation.org"
6074
poc: "Héctor Ochoa Ortiz <hector.ochoa.ortiz@osmfoundation.org>"
75+
region: GB
6176
- organization: "Osservatorio Nessuno OdV"
6277
url: "osservatorionessuno.org"
6378
poc: "Giulio B <giulio@osservatorionessuno.org>"
79+
region: IT
6480
- organization: "IzzyOnDroid"
6581
url: "izzyondroid.org"
6682
poc: "Andreas Itzchak Rehberg <izzy@izzyondroid.org>"
6783
- organization: "Nextcloud"
6884
url: "nextcloud.com"
6985
poc: "Jos Poortvliet <jos.poortvliet@nextcloud.com>"
86+
region: DE
7087
- organization: "Open Rights Group (ORG)"
7188
url: "openrightsgroup.org"
7289
poc: "Jim Killock <jim@openrightsgroup.org>"
90+
region: GB
7391
- organization: "Rossman Group"
7492
url: "rossmanngroup.com"
7593
poc: "Louis Rossmann <youtube@rossmanngroup.com>"
94+
region: US
7695
- organization: "Software Freedom Conservancy"
7796
url: "sfconservancy.org"
7897
poc: "Denver Gingerich <denver@sfconservancy.org>"
98+
region: US
7999
- organization: "Techlore"
80100
url: "techlore.tech"
81101
poc: "Henry Fisher <henry@techlore.tech>"
82-
- organization: "Tor Project"
102+
region: US
103+
- organization: "The Tor Project"
83104
url: "torproject.org"
84105
poc: "Isabela Fernandes <isabela@torproject.org>"
106+
region: US
85107
- organization: "Tuta Mail"
86108
url: "tutao.de"
87109
poc: "Hanna Bozakov <hanna.bozakov@tutao.de>"
88-
- organization: "Vivaldi"
110+
region: DE
111+
- organization: "Vivaldi Technologies AS"
89112
url: "vivaldi.com"
90113
poc: "Jon von Tetzchner <jon@vivaldi.com>"
114+
region: "NO"
91115

92116
#- organization: "XXX"
93117
# url: "XXX"

src/pages/draft-letter.astro

Lines changed: 105 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,118 @@ console.log(`entry: ${entry}`);
1111
if (!entry) throw new Error('Letter content not found');
1212
const { Content } = await entry.render();
1313
const { data } = entry;
14+
15+
// Convert ISO 3166-1 alpha-2 code to flag emoji (e.g. "US" → 🇺🇸)
16+
function regionFlag(code?: string): string {
17+
if (!code || code.length !== 2) return "\u{1F310}";
18+
return String.fromCodePoint(
19+
...code.toUpperCase().split("").map(c => 0x1F1E6 + c.charCodeAt(0) - 65)
20+
);
21+
}
1422
---
1523
<Letter {...data}>
1624
<article class="prose dark:prose-invert">
1725
<Content />
18-
<!--
19-
<div class="signatures-block">
20-
<h2>Signatures</h2>
21-
<ul>
22-
{signatures.map(signature => (
26+
<div class="signatories">
27+
<div class="sig-rule"></div>
28+
<h2>Signatories</h2>
29+
<ol>
30+
{signatures.map((sig: any) => (
2331
<li>
24-
<strong>{signature.organization}</strong> (<a target="_blank" href={`https://${signature.url}`}>{signature.url}</a>)
32+
<span class="sig-flag">{regionFlag(sig.region)}</span>
33+
<div class="sig-details">
34+
<span class="sig-name">{sig.organization}</span>
35+
<a target="_blank" href={`https://${sig.url}`}>{sig.url}</a>
36+
</div>
2537
</li>
2638
))}
27-
</ul>
39+
</ol>
40+
<div class="sig-rule"></div>
2841
</div>
29-
-->
3042
</article>
3143
</Letter>
44+
45+
<style is:global>
46+
.signatories {
47+
margin-top: 4rem;
48+
}
49+
50+
.sig-rule {
51+
border: none;
52+
height: 3px;
53+
background: linear-gradient(90deg, transparent, #333, transparent);
54+
margin: 0 auto;
55+
max-width: 36rem;
56+
}
57+
58+
.signatories h2 {
59+
text-align: center;
60+
text-transform: uppercase;
61+
font-variant: small-caps;
62+
letter-spacing: 0.25em;
63+
font-weight: 900;
64+
font-size: 1.6rem;
65+
margin-top: 1.5rem;
66+
margin-bottom: 0.25rem;
67+
}
68+
69+
.sig-count {
70+
text-align: center;
71+
text-transform: uppercase;
72+
letter-spacing: 0.15em;
73+
font-size: 0.8rem;
74+
opacity: 0.5;
75+
margin-top: 0;
76+
margin-bottom: 2rem;
77+
}
78+
79+
.signatories ol {
80+
list-style: none;
81+
padding: 0;
82+
margin: 0 auto 2rem;
83+
max-width: 36rem;
84+
}
85+
86+
.signatories li {
87+
display: flex;
88+
align-items: flex-start;
89+
padding: 0.75rem 0;
90+
border-bottom: 1px solid rgba(128, 128, 128, 0.15);
91+
}
92+
93+
.signatories li:last-child {
94+
border-bottom: none;
95+
padding-bottom: 1.5rem;
96+
}
97+
98+
.sig-flag {
99+
flex-shrink: 0;
100+
width: 2.5rem;
101+
padding-top: 0.1rem;
102+
font-size: 1.3rem;
103+
line-height: 1;
104+
}
105+
106+
.sig-details {
107+
display: flex;
108+
flex-direction: column;
109+
gap: 0.1rem;
110+
}
111+
112+
.sig-name {
113+
font-weight: 800;
114+
font-size: 1.05rem;
115+
letter-spacing: 0.01em;
116+
}
117+
118+
.sig-details a {
119+
font-size: 0.8rem;
120+
opacity: 0.5;
121+
letter-spacing: 0.02em;
122+
text-decoration: none;
123+
}
124+
125+
.sig-details a:hover {
126+
opacity: 0.8;
127+
}
128+
</style>

0 commit comments

Comments
 (0)