Y
HN HRCB new | past | comments | ask | show | by right | domains | dashboard | about hrcb
+0.20 Show HN: 3D Mahjong, Built in CSS (voxjong.com)
129 points by rofko 2 days ago | 58 comments on HN | Mild positive Product · vv3.4 · 2026-02-24
Article Heatmap
Preamble: +0.20 — Preamble P Article 1: +0.05 — Freedom, Equality, Brotherhood 1 Article 2: +0.23 — Non-Discrimination 2 Article 3: ND — Life, Liberty, Security Article 3: No Data — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: ND — Equality Before Law Article 7: No Data — Equality Before Law 7 Article 8: ND — Right to Remedy Article 8: No Data — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: ND — Privacy Article 12: No Data — Privacy 12 Article 13: ND — Freedom of Movement Article 13: No Data — Freedom of Movement 13 Article 14: ND — Asylum Article 14: No Data — Asylum 14 Article 15: ND — Nationality Article 15: No Data — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: ND — Property Article 17: No Data — Property 17 Article 18: ND — Freedom of Thought Article 18: No Data — Freedom of Thought 18 Article 19: ND — Freedom of Expression Article 19: No Data — Freedom of Expression 19 Article 20: ND — Assembly & Association Article 20: No Data — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: ND — Social Security Article 22: No Data — Social Security 22 Article 23: ND — Work & Equal Pay Article 23: No Data — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: +0.24 — Standard of Living 25 Article 26: ND — Education Article 26: No Data — Education 26 Article 27: +0.22 — Cultural Participation 27 Article 28: ND — Social & International Order Article 28: No Data — Social & International Order 28 Article 29: ND — Duties to Community Article 29: No Data — Duties to Community 29 Article 30: ND — No Destruction of Rights Article 30: No Data — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
Weighted Mean +0.20 Unweighted Mean +0.19
Max +0.24 Article 25 Min +0.05 Article 1
Signal 5 No Data 26
Confidence 7% Volatility 0.07 (Low)
Negative 0 Channels E: 0.5 S: 0.5
SETL ND
Evidence: High: 0 Medium: 3 Low: 2 No Data: 26
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.16 (3 articles) Security: 0.00 (0 articles) Legal: 0.00 (0 articles) Privacy & Movement: 0.00 (0 articles) Personal: 0.00 (0 articles) Expression: 0.00 (0 articles) Economic & Social: 0.24 (1 articles) Cultural: 0.22 (1 articles) Order & Duties: 0.00 (0 articles)
Domain Context Profile
Element Modifier Affects Note
Privacy
No privacy policy visible on landing page; cannot assess.
Terms of Service
No terms of service visible on landing page; cannot assess.
Accessibility +0.15
Article 2 Article 25
CSS indicates sr-only elements present, suggesting accessibility effort. Game-only interface limits broader accessibility assessment.
Mission
No mission or values statement observable on domain.
Editorial Code
No editorial content or code of conduct visible.
Ownership
No ownership or organizational information visible.
Access Model +0.12
Article 25 Article 27
Game appears free-to-play with no paywall indicated; supports access to cultural participation.
Ad/Tracking
No advertising or tracking infrastructure evident in provided content.
HN Discussion 20 top-level comments
codingdave 2026-02-22 15:58 UTC link
It is a nice UX, but with a fatal flaw: Tiles are supposed to be free when there is a side free, but you instead have it coded to be free when the top or bottom is free. Your app, your rules, so if you intended to do that, cool. It is just a fundamental divergence from how other implementations do it.
HardwareLust 2026-02-22 16:18 UTC link
Very nice! Worked great on my shitty old Motorola phone.
DuncanCoffee 2026-02-22 16:41 UTC link
Nice! Wish the supported rotation was bigger, maybe +- 90 instead of only 90 deg?
akersten 2026-02-22 16:59 UTC link
If I click fast enough on mobile it starts trying to select/highlight text, should be able to prevent that with CSS too. I find this is somehow a common issue that separates a lot of PWAs from real apps, the browser text engine is still lurking there in the background trying to recall us all to the glory days of hypermedia
haunter 2026-02-22 17:20 UTC link
Now make it _real_ mahjong (; https://en.wikipedia.org/wiki/Mahjong

Which makes me wonder which ruleset would be the easiest to implement. Probably MCR or HK, riichi has too many edge cases and sepcial rules and yakus.

snvzz 2026-02-22 17:27 UTC link
This ain't mahjong.

Instead, it is some solitaire using mahjong pieces.

rdescartes 2026-02-22 17:58 UTC link
Should it be named Shanghai solitaire Or Mahjong Solitaire ?
user3939382 2026-02-22 18:02 UTC link
Some people say “mar” jong it’s the weirdest thing.
Minor49er 2026-02-22 18:12 UTC link
This is pretty cool. I like the look and the gameplay. Though playing on mobile, some of the roatation gestures caused the page to refesh on me a couple of times since they triggered the browser's "drag down to refresh" interaction
sanj 2026-02-22 18:38 UTC link
This is lovely! Can I suggest make sure that the board is solveable?
TazeTSchnitzel 2026-02-22 18:51 UTC link
Is the lack of a perspective projection option deliberate? CSS can do that too.
thenthenthen 2026-02-22 19:06 UTC link
There are some super weird bugs, sometimes only one of the two pieces are removed and sometimes the field goes blank? Also on every move the faves change?! iOS here. And yeah, no majiang, but still super cool! Nostalgic vibes waiting for my fries and playing the Photo Play touch screen gambling machine (after unlocking it by tapping the words photo and play on the logo with two different fingers and entering the code)
Bender 2026-02-22 20:02 UTC link
I think this is a good example of what CSS can do and probably was not easy to make but I will likely stick with Mahjong that comes with most Linux distributions as they follow rules that people I may end up playing against would know and they have many layouts. I could see this being applied to other things however such as games that require building or repairing something. Or something similar to Minecraft?

Impressive work!

koolala 2026-02-22 20:10 UTC link
I wish you could rotate all the way. On a phone its also easy to do the refresh gesture.
jsmo 2026-02-22 20:20 UTC link
Nice!
aranw 2026-02-22 20:51 UTC link
Really enjoyed that although my final two tiles were stacked and couldn't finish the game!
tejonutella 2026-02-22 21:25 UTC link
Looks cool! Wish I knew how to play Mahjong tho
alexpotato 2026-02-23 00:15 UTC link
Coding + Mahjong related story:

Back in college, while majoring in CS, I had a rough time dealing with semicolons, typos, missed characters while coding.

I thought to myself "I wonder if playing Mahjong in the Windows games would help me get better at scanning code and finding these types of errors". So I tried it and, lo and behold, it did.

Also, in this day and age of LLMs writing a lot of the code, scanning for missing semicolons in code sounds like "I was great at fixing telegraphs!"

soni96pl 2026-02-23 06:00 UTC link
Beautiful work, thank you for showing it
lieblingautor 2026-02-23 21:52 UTC link
i'm confused how to play it but it's pretty amazing this was done with css cool stuff man
Score Breakdown
+0.20
Preamble Preamble
Low P: Free-to-access game platform supports dignity and equal opportunity
Editorial
ND
Structural
+0.08
SETL
ND
Combined
ND
Context Modifier
ND

Game-only interface with no explicit content addressing human rights. Positive structural signal from free access model and accessibility infrastructure. Limited direct evidence.

+0.05
Article 1 Freedom, Equality, Brotherhood
Low P: Open access suggests non-discriminatory provision
Editorial
ND
Structural
+0.05
SETL
ND
Combined
ND
Context Modifier
ND

No explicit content. Minimal structural signal from free access and non-gated gameplay.

+0.23
Article 2 Non-Discrimination
Medium P: Accessibility infrastructure (sr-only) demonstrates non-discriminatory design intent
Editorial
ND
Structural
+0.08
SETL
ND
Combined
ND
Context Modifier
ND

CSS includes screen-reader-only markup, suggesting deliberate effort to support users with visual impairments. Accessibility features support non-discrimination principle.

ND
Article 3 Life, Liberty, Security

No observable content related to right to life, liberty, security.

ND
Article 4 No Slavery

No observable content related to slavery or servitude.

ND
Article 5 No Torture

No observable content related to torture or cruel treatment.

ND
Article 6 Legal Personhood

No observable content related to legal personhood.

ND
Article 7 Equality Before Law

No observable content related to equal protection before law.

ND
Article 8 Right to Remedy

No observable content related to effective remedies.

ND
Article 9 No Arbitrary Detention

No observable content related to arbitrary arrest or detention.

ND
Article 10 Fair Hearing

No observable content related to fair trial.

ND
Article 11 Presumption of Innocence

No observable content related to criminal law principles.

ND
Article 12 Privacy

No observable content related to privacy and family.

ND
Article 13 Freedom of Movement

No observable content related to movement and residence.

ND
Article 14 Asylum

No observable content related to asylum.

ND
Article 15 Nationality

No observable content related to nationality.

ND
Article 16 Marriage & Family

No observable content related to marriage and family.

ND
Article 17 Property

No observable content related to property.

ND
Article 18 Freedom of Thought

No observable content related to freedom of thought and religion.

ND
Article 19 Freedom of Expression

No observable content related to freedom of opinion and expression.

ND
Article 20 Assembly & Association

No observable content related to freedom of assembly and association.

ND
Article 21 Political Participation

No observable content related to democratic participation.

ND
Article 22 Social Security

No observable content related to social security.

ND
Article 23 Work & Equal Pay

No observable content related to work and employment.

ND
Article 24 Rest & Leisure

No observable content related to rest and leisure.

+0.24
Article 25 Standard of Living
Medium P: Free access to cultural/recreational activity supports right to standard of living P: Accessibility features support participation in cultural life
Editorial
ND
Structural
+0.12
SETL
ND
Combined
ND
Context Modifier
ND

Game provides free access to recreational and cultural activity (Mahjong, a traditional game). Accessibility infrastructure enables broader participation in leisure. Structural support for right to adequate standard of living and cultural participation.

ND
Article 26 Education

No observable content related to education.

+0.22
Article 27 Cultural Participation
Medium P: Free access to cultural heritage (Mahjong) supports participation in cultural life P: Open platform removes barriers to cultural participation
Editorial
ND
Structural
+0.10
SETL
ND
Combined
ND
Context Modifier
ND

VoxJong provides free digital access to traditional Mahjong game, supporting right to participate in cultural life. No copyright restrictions or paywalls observed. Democratizes access to cultural heritage.

ND
Article 28 Social & International Order

No observable content related to social and international order.

ND
Article 29 Duties to Community

No observable content related to duties or limitations.

ND
Article 30 No Destruction of Rights

No observable content related to prevention of rights destruction.

About HRCB | By Right | HN Guidelines | HN FAQ | Source | UDHR
build e6e1fe0+wzhh · 2026-02-25 01:29 UTC