[{"data":1,"prerenderedAt":572},["ShallowReactive",2],{"project-32348461":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":45,"post_text":48,"what":49,"said":85,"maker_in_thread":198,"shape":209,"grid":213,"attempts":536,"same_week":537,"maker_shows":34,"maker_hidden":564,"reader_version":565,"card":566},"32348461","Penumbra","A perceptually optimized color palette based on natural light","title","Show HN: Penumbra, a perceptually optimized color palette based on natural light","https:\u002F\u002Fgithub.com\u002Fnealmckee\u002Fpenumbra","github.com","solasluaith",1659648187,2022,267,124,171,2570,7,"legend","dev_tools","color theme","other",[24,25,26,27,28],"syntax highlighting","color palette","perceptual color","editor theme","oklab","debated",-0.214,{"positive":32,"neutral":33,"mixed":34,"critical":35},11,13,1,18,43,{"design":38,"idea":41,"docs":43},{"positive":39,"critical":40},6,14,{"positive":34,"critical":42},2,{"positive":44,"critical":34},0,[42,44,46,44,34,44,47,44,34,44,34,44,44,44,47,47,34,34,47,46,44,47,44,47,34,34,47,34,47,34,47,46,46,46,46,47,47,34,34,34],5,3,"For this palette, I used recent advances in color science, which made perceptual design more accessible, to choose a set of colors (mainly for syntax highlighting) that have uniform luminance for less visually uneven, fluidly readable code, but at the same time maximally distinguishable hue and chroma. The background colors are based on natural (sun-)light and shade for a more pleasing look than equally neutral greys.\n\nFor much more detailed info, including the construction, check out the repository.\n\nThere’s also already a (bare-bones) VSCode extension, linked in the repository, but it could ",{"problem":50,"audience":59,"pricing":66,"motivation":67,"time_to_build":66,"stack":71,"openness":82,"stage":83,"team_size":84},{"value":51,"source":52,"evidence":53},"Syntax highlighting colors that are uniformly readable and distinguishable without uneven luminance","maker",[54,56],{"id":55},"post",{"id":57,"by":11,"text":58},"32354577","Exactly, the fundamental assumption that I’m making is that all code should have the same level of emphasis — like a regular text — while maintaining the ability to scan for…",{"value":60,"source":61,"evidence":62},"Developers who want a code editor color theme","inferred",[63],{"id":64,"by":11,"text":65},"32355275","I think most of the criticism is fair and to be expected, especially as the design goals are very “opinionated” in a sense and on the other hand, everyone will have a subjective…",null,{"value":68,"source":52,"evidence":69},"Maker wanted a palette for their own use with uniform luminance and chroma for readable code",[70],{"id":64,"by":11,"text":65},[72,76],{"value":73,"source":52,"evidence":74},"VSCode extension",[75],{"id":55},{"value":77,"source":52,"evidence":78},"OKLab color space",[79],{"id":80,"by":11,"text":81},"32354943","That’s the great thing about OKLab, it makes this kind of design much easier and more accessible without having to resort to color appearance models like CIECAM16 or even just…","open_source","beta","solo",{"praise":86,"objections":95,"requests":127,"questions":150,"alternatives":171},[87],{"value":88,"source":89,"evidence":90},"Looks nice and well justified","commenter",[91],{"id":92,"by":93,"text":94},"32349377","AndrewOMartin","Looks nice. Fancy justification too. Are you claiming it's a significant improvement over Solarised? Either way, good stuff.",[96,105,112,121],{"value":97,"source":89,"evidence":98},"Poor accessibility for color vision deficiency, acknowledged by maker",[99,102],{"id":100,"by":11,"text":101},"32349656","I’m actually working on another project where I’m trying to design fully optimized categorical colour palettes for people with colour vision deficiency, so I’m fully aware of…",{"id":103,"by":11,"text":104},"32355046","Yes, I’ve even updated the README to specify that accessibility for colour blindness is sadly impossible with these design goals and that they even make the palette particularly…",{"value":106,"source":89,"evidence":107},"Almost a carbon copy of Solarized",[108],{"id":109,"by":110,"text":111},"32353481","jasonm23","This looks like an almost carbon copy of the research done for Solarized. \"Great\"",{"value":113,"source":89,"evidence":114},"Monochrome-leaning, colors feel muddy and low contrast",[115,118],{"id":116,"by":11,"text":117},"32354295","As I said below, I can totally see how taking the opposite approach of making different keywords more or less salient could be just as valid, if you prefer this over having an…",{"id":119,"by":11,"text":120},"32354130","I feel like you have kind of missed the point here. I am doing everything else extra to make up for the lack of contrast in luminance if you read the documentation, but of course…",{"value":122,"source":52,"evidence":123},"Light theme has barely enough contrast",[124],{"id":125,"by":11,"text":126},"32349600","Good catch, that is an issue with the VSCode extension, apparently it’s using the colour for comments (which is purposefully low contrast) for plain text when it should be using…",[128,136,140],{"value":129,"source":89,"evidence":130},"Fix comment-color used for plain text in VSCode extension",[131,135],{"id":132,"by":133,"text":134},"32349507","powersnail","I gave it a try, and in plain text files, it seems way too low contrast: [screenshot](https:\u002F\u002Fi.postimg.cc\u002F65Xcx9Cv\u002FScreenshot-20220804-161004.png).",{"id":125,"by":11,"text":126},{"value":137,"source":52,"evidence":138},"Better token distribution and language-specific highlighting in the extension",[139],{"id":55},{"value":141,"source":89,"evidence":142},"Vim support",[143,147],{"id":144,"by":145,"text":146},"32352272","grimgrin","If anyone is keen on making some vim colorschemes based off of this, you might like romainl's colorscheme template: https:\u002F\u002Fgithub.com\u002Fromainl\u002Fvim-rnb > RNB is a template…",{"id":148,"by":11,"text":149},"32354594","I’m not a vim user but I’ll make a note of this in case I get around to implementing it myself. Realistically I would definitely need to work off of a template like this. Thanks!",[151,161],{"value":152,"source":89,"evidence":153},"Whether uniform luminance is desirable for code readability",[154,157],{"id":155,"by":11,"text":156},"32349779","That’s the point though, these colours are great because they have (almost) uniform perceptual differences and that is what I was aiming for. Of course this means that “yellow”…",{"id":158,"by":159,"text":160},"32352230","pyjamafish","Very interesting to see this, because a few days ago I started using a theme that takes the complete opposite approach: limited hue range, but wide luminance range.…",{"value":162,"source":89,"evidence":163},"How CVD-friendly categorical palettes can be optimized",[164,168],{"id":165,"by":166,"text":167},"32352644","edwintorok","Zenbones allows to define custom color schemes by providing just a few base colours and overrides. You could try creating one based on penumbra to have both lightness contrast…",{"id":169,"by":11,"text":170},"32354478","Just on the last point, I’d be interested to know what scientific ways to construct CVD-friendly colour maps you mean. I’m aware of all the continuous colour maps for…",[172,180,186,192],{"value":173,"source":89,"evidence":174},"Solarized",[175,176,177],{"id":92,"by":93,"text":94},{"id":109,"by":110,"text":111},{"id":178,"by":11,"text":179},"32355181","I acknowledge at the bottom that Solarised was one of the inspirations for this and some similar design principles apply in terms of the background colours, but really the…",{"value":181,"source":89,"evidence":182},"Selenized",[183],{"id":184,"by":11,"text":185},"32367533","Many differences to my attempt: Luminance is kept different between colours according to some subjective “individuality”, I touched on why I decided against this in another…",{"value":187,"source":52,"evidence":188},"Okabe-Ito, Paul Tol, ColorBrewer",[189],{"id":190,"by":11,"text":191},"32355244","If you care about accessibility and these colours have any sort of function or meaning within the app, I’m afraid I would advise against using these colours as they were created…",{"value":193,"source":52,"evidence":194},"Huetone",[195],{"id":196,"by":11,"text":197},"32355130","The saturation (or to be more accurate in this case, chroma) is actually already as high as possible (unless I’ve made a fundamental mistake) given the constraint that we want it…",{"comments":199,"answered":200,"key":201},44,4,[202,205,206],{"id":203,"text":204},"32354999","My base assumption was to treat code like text and you’re right, this means that smaller tokens are not as salient as larger ones. But if you really wanted to go down that…",{"id":57,"text":58},{"id":207,"text":208},"32354489","Thank you for this succinct explanation, that’s pretty much exactly what I was aiming for! Would you be okay with me adapting the explanation for the README at some point?",{"commenters":210,"max_depth":39,"maker_replies":199,"first_comment_mins":211,"lifespan_hours":212},59,96,116,[214,218,222,225,229,230,234,236,240,242,244,248,250,253,257,260,261,265,267,269,270,272,275,277,278,281,284,287,289,292,294,296,299,300,303,306,308,311,314,316,318,321,323,326,327,330,334,336,339,343,346,348,351,353,356,358,360,364,365,367,369,372,375,378,380,383,386,387,391,394,396,399,403,405,406,409,411,412,413,415,416,419,422,424,426,429,431,434,436,438,440,442,444,448,450,452,455,458,463,467,468,472,476,478,482,484,488,489,491,495,498,500,505,506,510,512,517,519,524,526,529,531,533,535],[215,44,34,216,217,44],"32349999","project\u002Fcritical\u002Fdesign","junon",[219,44,47,220,221,44],"32350134","project\u002Fneutral\u002Fdesign","maegul",[223,44,47,224,166,44],"32352600","maker\u002Fneutral\u002Fnone",[226,44,44,227,228,44],"32354754","commenter\u002Fneutral\u002Fdesign","bXVsbGVy",[203,44,44,220,11,34],[231,44,44,232,233,44],"32350641","commenter\u002Fneutral\u002Fidea","gmiller123456",[57,44,44,235,11,34],"project\u002Fneutral\u002Fidea",[237,44,46,238,239,44],"32354109","project\u002Fpositive\u002Fidea","scratcheee",[207,44,44,241,11,34],"commenter\u002Fneutral\u002Fnone",[243,44,44,241,239,44],"32401029",[245,44,44,246,247,44],"32355261","other\u002Fneutral\u002Fidea","Sharlin",[249,44,44,235,11,34],"32355880",[251,44,44,246,252,44],"32362812","siraben",[254,44,44,255,256,44],"32355403","other\u002Fneutral\u002Fdesign","platz",[258,44,34,216,259,44],"32355820","strainer",[158,34,44,255,159,44],[262,34,44,263,264,44],"32352413","other\u002Fpositive\u002Fnone","solardev",[266,34,44,255,221,44],"32352635",[268,34,44,235,11,34],"32354428",[165,34,47,220,166,44],[169,34,44,271,11,34],"project\u002Fneutral\u002Fnone",[273,34,44,274,166,44],"32355683","other\u002Fneutral\u002Fnone",[276,34,44,271,11,34],"32356990",[116,34,44,220,11,34],[279,42,34,216,280,44],"32352440","jobarion",[282,42,44,274,283,44],"32353269","mhd",[285,42,44,274,286,44],"32353343","OJFord",[288,42,44,274,280,44],"32354208",[290,42,44,274,291,44],"32354643","fsloth",[293,42,44,271,11,34],"32355071",[103,42,44,295,11,34],"project\u002Fneutral\u002Fdocs",[297,47,34,216,298,44],"32349509","pandoro",[100,47,44,235,11,34],[301,200,34,216,302,44],"32351256","egypturnash",[304,200,44,227,305,44],"32351336","tshaddox",[307,200,44,227,302,44],"32351481",[309,200,44,241,310,44],"32352183","svrtknst",[312,200,44,241,313,44],"32352287","washbrain",[315,200,44,220,11,34],"32354135",[317,200,44,241,302,44],"32356912",[319,200,44,241,320,44],"32354850","JohnHaugeland",[322,200,44,227,302,44],"32356900",[324,200,44,255,325,44],"32351946","alx__",[119,200,44,220,11,34],[328,46,34,216,329,44],"32352857","Retr0id",[331,46,46,332,333,44],"32353291","project\u002Fpositive\u002Fnone","Nic0",[335,46,44,220,11,34],"32354152",[337,46,34,216,338,44],"32354719","dsego",[340,46,46,341,342,44],"32355868","project\u002Fpositive\u002Fdesign","czottmann",[344,39,47,220,345,44],"32350923","rguiscard",[347,39,44,241,11,34],"32354899",[349,39,34,216,350,44],"32362887","ffhhj",[352,39,44,220,11,34],"32367395",[354,18,34,216,355,44],"32349675","travisd",[357,18,44,295,11,34],"32349714",[359,18,47,295,217,44],"32349960",[361,362,44,255,363,44],"32354806",8,"monokai_nl",[80,362,44,235,11,34],[92,366,47,220,93,44],9,[368,366,44,220,11,34],"32349588",[370,366,46,341,371,44],"32349966","wrycoder",[373,366,46,341,374,44],"32351306","hermitdev",[376,366,44,232,377,44],"32352700","funcDropShadow",[379,366,44,232,228,44],"32354662",[381,366,44,382,11,34],"32355520","maker\u002Fneutral\u002Fidea",[384,366,47,235,385,44],"32365212","dngray",[184,366,44,227,11,34],[388,389,44,255,390,44],"32351356",10,"klabb3",[392,389,44,393,11,34],"32354888","maker\u002Fneutral\u002Fdesign",[395,389,44,255,390,44],"32361214",[397,32,44,274,398,44],"32398819","Poyeyo",[400,401,47,220,402,44],"32351013",12,"yarg",[404,401,44,274,402,44],"32352530",[196,401,44,220,11,34],[407,33,34,216,408,44],"32351495","ac130kz",[410,33,44,393,11,34],"32355448",[144,40,47,271,145,44],[148,40,44,224,11,34],[132,414,34,216,133,44],15,[125,414,44,393,11,34],[417,414,46,418,133,44],"32349671","maker\u002Fpositive\u002Fdesign",[420,414,44,421,11,34],"32349839","maker\u002Fpositive\u002Fnone",[423,414,34,216,166,44],"32352520",[425,414,44,393,11,34],"32355317",[427,414,34,216,428,44],"32352631","steve_gh",[430,414,44,224,11,34],"32355334",[432,433,47,220,166,44],"32352540",16,[435,433,44,393,11,34],"32354840",[437,433,44,227,166,44],"32355535",[439,433,44,393,11,34],"32355621",[441,433,44,241,166,44],"32355705",[443,433,44,224,11,34],"32357067",[445,446,34,216,447,44],"32352131",17,"cjsawyer",[449,446,44,227,264,44],"32352435",[451,446,44,241,320,44],"32354881",[453,35,47,295,454,44],"32354982","cormullion",[456,35,44,457,11,34],"32355019","maker\u002Fneutral\u002Fdocs",[459,460,47,461,462,44],"32360787",19,"project\u002Fmixed\u002Fdesign","chronogram",[464,465,46,341,466,44],"32352563",20,"null0pointer",[64,465,44,224,11,34],[469,470,44,255,471,44],"32351496",21,"c_o_n_v_e_x",[473,474,46,332,475,44],"32354282",22,"dash2",[477,474,44,224,11,34],"32354913",[479,480,46,341,481,44],"32354447",23,"rvieira",[483,480,44,393,11,34],"32354553",[485,486,47,220,487,44],"32350047",24,"tra3",[190,486,44,224,11,34],[490,486,46,421,487,44],"32358082",[492,493,47,382,494,44],"32353209",25,"beanjuice",[496,493,44,246,497,44],"32354734","wongarsu",[499,493,44,382,11,34],"32355159",[501,502,34,503,504,44],"32349749",26,"project\u002Fcritical\u002Fidea","RicoElectrico",[155,502,44,382,11,34],[507,508,46,332,509,44],"32362644",27,"SteeleDynamics",[511,508,44,224,11,34],"32367372",[513,514,34,515,516,44],"32351318",28,"project\u002Fcritical\u002Fdocs","Klonoar",[518,514,44,457,11,34],"32355215",[520,521,34,522,523,44],"32355077",29,"project\u002Fcritical\u002Fnone","MrYellowP",[525,521,44,224,11,34],"32355412",[527,521,44,528,523,44],"32359981","commenter\u002Fcritical\u002Fnone",[530,521,44,241,11,34],"32367572",[109,532,34,503,110,44],30,[534,532,44,241,320,44],"32354889",[178,532,44,235,11,34],[],[538,543,548,552,556,560],{"id":539,"name":540,"points":541,"category":542},"32376154","Figure",417,"games",{"id":544,"name":545,"points":546,"category":547},"32409966","tevr-asr-tool",231,"ai",{"id":549,"name":550,"points":551,"category":20},"32344671","Superblocks",193,{"id":553,"name":554,"points":555,"category":20},"32352291","RocketRide",176,{"id":557,"name":558,"points":559,"category":20},"32353479","PDF-Diff",169,{"id":561,"name":562,"points":563,"category":542},"32342820","Killer Crossword",117,false,"v2",{"id":567,"name":5,"line":6,"ai":564,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":568,"top":18,"kw":569,"maker":11,"domain":10,"tier":19,"attempts":44,"strip":570,"url":9,"mix":571,"praise":88,"objection":97,"sub":21},32348461,-0.21,[24,25,26,27,28],"2050103010100033113503031131313555533111",[32,33,34,35],1793991049803]