');-webkit-background-clip:text;background-clip:text;color:transparent}.Logo__Container .Logo .text{font-size:14.4px;font-style:italic;color:#a3cacd}.Logo__Container .Logo .stateof{top:0;left:0}.Logo__Container .Logo .year{bottom:0;right:0;text-align:right}.Logo__Container .Logo .triangle{width:43.2px;top:54px;left:4.8px}.Logo__Container .Logo .triangle .inner{width:100%;border:30px solid transparent;border-bottom-color:#3c52d1;border-width:0 21.6px 30px}.Logo__Container .Logo .stripe{height:1.5px;width:30px;background:#a3cacd}.Logo__Container .Logo .stripe1{top:74.4px;left:28.8px}.Logo__Container .Logo .stripe2{top:80.4px;left:26.4px}.Logo__Container .Logo .stripe3{top:86.4px;left:24px}.Logo__Container .Logo .stripe4{top:92.4px;left:26.4px}.Logo__Container .Logo .blobs{-webkit-filter:url(#blob);filter:url(#blob);left:30px;top:36px;transform:rotate(-20deg);width:120px;height:60px;display:flex;justify-content:center;align-items:center}.Logo__Container .Logo .blob{width:50%;height:100%;background:#a3cacd;border-radius:50%}.Logo__Container .Logo .blob2{transform:translateX(-12px)}.Logo__Container .Logo .circle{width:76.8px;top:50%;left:calc(50% - 3px)}.Logo__Container .Logo .circle .inner{transform:translateX(-50%) translateY(-50%)}.Logo__Container .Logo .circle .inner div{width:100%;height:0;padding-bottom:100%;border:3px dashed #3c52d1;border-radius:100%;box-sizing:content-box}.Logo__Container .Logo .frame{width:64.8px;right:26.4px;top:50%}.Logo__Container .Logo .frame .inner{transform:translateY(-50%) rotate(45deg)}.Logo__Container .Logo .frame .inner div{border:3px solid #3c52d1;width:100%;height:0;padding-bottom:100%;box-sizing:content-box;box-shadow:2.1px 2.1px 0 0 #a3cacd}.Logo__Container .Logo .tilde{font-size:33.6px;line-height:1}.Logo__Container .Logo .tilde1{top:24px;right:12px}.Logo__Container .Logo .tilde2{top:30px;right:9.6px}.Logo__Container .Logo .tilde3{top:36px;right:7.2px}.Logo__Container .Logo--animated .c>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.1s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .s1>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.2s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .s2>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.3s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .circle>div>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:popspin;animation-duration:.6s;animation-delay:.5s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);transform:scale(0)}.Logo__Container .Logo--animated .frame{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slidetop;animation-duration:.6s;animation-delay:.8s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);transform:scale(0) translateY(-60px) rotate(180deg)}.Logo__Container .Logo--animated .blob1{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.9s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .blob2{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:blob;animation-duration:.5s;animation-delay:1.1s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-100%)}.Logo__Container .Logo--animated .stripe1{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.4s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(12px)}.Logo__Container .Logo--animated .stripe2{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.5s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(12px)}.Logo__Container .Logo--animated .stripe3{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.6s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(12px)}.Logo__Container .Logo--animated .stripe4{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.7s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(12px)}.Logo__Container .Logo--animated .tilde1{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideright;animation-duration:.4s;animation-delay:1.9s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-12px)}.Logo__Container .Logo--animated .tilde2{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideright;animation-duration:.4s;animation-delay:2s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-12px)}.Logo__Container .Logo--animated .tilde3{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideright;animation-duration:.4s;animation-delay:2.1s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-12px)}.Logo__Container .Logo--animated .triangle{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:popspin;animation-duration:.6s;animation-delay:2.8s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);transform:scale(0)}.Logo__Container .Logo--animated .stateof{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:appear;animation-duration:.3s;animation-delay:2.2s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0}.Logo__Container .Logo--animated .year{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:appear;animation-duration:.3s;animation-delay:2.5s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0}}@media screen and (min-width:600px) and (max-width:999px){.Logo__Container .Logo{text-shadow:none;width:400px;height:200px;position:relative}.Logo__Container .Logo>*{position:absolute}.Logo__Container .Logo .letter{font-size:144px;color:#f649a7;font-weight:800;line-height:1}.Logo__Container .Logo .c{top:50%;transform:translateY(-50%);left:48px;text-shadow:5px 5px 0 #3c52d1}.Logo__Container .Logo .s1{left:50%;top:50%;transform:translateX(-50%) translateY(-50%)}.Logo__Container .Logo .s2{top:50%;transform:translateY(-50%);right:48px}.Logo__Container .Logo .s2 div{text-align:right;background:url('data:image/svg+xml;utf8, ');-webkit-background-clip:text;background-clip:text;color:transparent}.Logo__Container .Logo .text{font-size:24px;font-style:italic;color:#a3cacd}.Logo__Container .Logo .stateof{top:0;left:0}.Logo__Container .Logo .year{bottom:0;right:0;text-align:right}.Logo__Container .Logo .triangle{width:72px;top:90px;left:8px}.Logo__Container .Logo .triangle .inner{width:100%;border:50px solid transparent;border-bottom-color:#3c52d1;border-width:0 36px 50px}.Logo__Container .Logo .stripe{height:2.5px;width:50px;background:#a3cacd}.Logo__Container .Logo .stripe1{top:124px;left:48px}.Logo__Container .Logo .stripe2{top:134px;left:44px}.Logo__Container .Logo .stripe3{top:144px;left:40px}.Logo__Container .Logo .stripe4{top:154px;left:44px}.Logo__Container .Logo .blobs{-webkit-filter:url(#blob);filter:url(#blob);left:50px;top:60px;transform:rotate(-20deg);width:200px;height:100px;display:flex;justify-content:center;align-items:center}.Logo__Container .Logo .blob{width:50%;height:100%;background:#a3cacd;border-radius:50%}.Logo__Container .Logo .blob2{transform:translateX(-20px)}.Logo__Container .Logo .circle{width:128px;top:50%;left:calc(50% - 5px)}.Logo__Container .Logo .circle .inner{transform:translateX(-50%) translateY(-50%)}.Logo__Container .Logo .circle .inner div{width:100%;height:0;padding-bottom:100%;border:5px dashed #3c52d1;border-radius:100%;box-sizing:content-box}.Logo__Container .Logo .frame{width:108px;right:44px;top:50%}.Logo__Container .Logo .frame .inner{transform:translateY(-50%) rotate(45deg)}.Logo__Container .Logo .frame .inner div{border:5px solid #3c52d1;width:100%;height:0;padding-bottom:100%;box-sizing:content-box;box-shadow:3.5px 3.5px 0 0 #a3cacd}.Logo__Container .Logo .tilde{font-size:56px;line-height:1}.Logo__Container .Logo .tilde1{top:40px;right:20px}.Logo__Container .Logo .tilde2{top:50px;right:16px}.Logo__Container .Logo .tilde3{top:60px;right:12px}.Logo__Container .Logo--animated .c>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.1s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .s1>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.2s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .s2>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.3s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .circle>div>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:popspin;animation-duration:.6s;animation-delay:.5s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);transform:scale(0)}.Logo__Container .Logo--animated .frame{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slidetop;animation-duration:.6s;animation-delay:.8s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);transform:scale(0) translateY(-100px) rotate(180deg)}.Logo__Container .Logo--animated .blob1{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.9s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .blob2{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:blob;animation-duration:.5s;animation-delay:1.1s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-100%)}.Logo__Container .Logo--animated .stripe1{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.4s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(20px)}.Logo__Container .Logo--animated .stripe2{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.5s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(20px)}.Logo__Container .Logo--animated .stripe3{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.6s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(20px)}.Logo__Container .Logo--animated .stripe4{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.7s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(20px)}.Logo__Container .Logo--animated .tilde1{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideright;animation-duration:.4s;animation-delay:1.9s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-20px)}.Logo__Container .Logo--animated .tilde2{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideright;animation-duration:.4s;animation-delay:2s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-20px)}.Logo__Container .Logo--animated .tilde3{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideright;animation-duration:.4s;animation-delay:2.1s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-20px)}.Logo__Container .Logo--animated .triangle{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:popspin;animation-duration:.6s;animation-delay:2.8s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);transform:scale(0)}.Logo__Container .Logo--animated .stateof{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:appear;animation-duration:.3s;animation-delay:2.2s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0}.Logo__Container .Logo--animated .year{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:appear;animation-duration:.3s;animation-delay:2.5s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0}}@media screen and (min-width:1000px){.Logo__Container .Logo{text-shadow:none;width:640px;height:320px;position:relative}.Logo__Container .Logo>*{position:absolute}.Logo__Container .Logo .letter{font-size:230.4px;color:#f649a7;font-weight:800;line-height:1}.Logo__Container .Logo .c{top:50%;transform:translateY(-50%);left:76.8px;text-shadow:8px 8px 0 #3c52d1}.Logo__Container .Logo .s1{left:50%;top:50%;transform:translateX(-50%) translateY(-50%)}.Logo__Container .Logo .s2{top:50%;transform:translateY(-50%);right:76.8px}.Logo__Container .Logo .s2 div{text-align:right;background:url('data:image/svg+xml;utf8, ');-webkit-background-clip:text;background-clip:text;color:transparent}.Logo__Container .Logo .text{font-size:38.4px;font-style:italic;color:#a3cacd}.Logo__Container .Logo .stateof{top:0;left:0}.Logo__Container .Logo .year{bottom:0;right:0;text-align:right}.Logo__Container .Logo .triangle{width:115.2px;top:144px;left:12.8px}.Logo__Container .Logo .triangle .inner{width:100%;border:80px solid transparent;border-bottom-color:#3c52d1;border-width:0 57.6px 80px}.Logo__Container .Logo .stripe{height:4px;width:80px;background:#a3cacd}.Logo__Container .Logo .stripe1{top:198.4px;left:76.8px}.Logo__Container .Logo .stripe2{top:214.4px;left:70.4px}.Logo__Container .Logo .stripe3{top:230.4px;left:64px}.Logo__Container .Logo .stripe4{top:246.4px;left:70.4px}.Logo__Container .Logo .blobs{-webkit-filter:url(#blob);filter:url(#blob);left:80px;top:96px;transform:rotate(-20deg);width:320px;height:160px;display:flex;justify-content:center;align-items:center}.Logo__Container .Logo .blob{width:50%;height:100%;background:#a3cacd;border-radius:50%}.Logo__Container .Logo .blob2{transform:translateX(-32px)}.Logo__Container .Logo .circle{width:204.8px;top:50%;left:calc(50% - 8px)}.Logo__Container .Logo .circle .inner{transform:translateX(-50%) translateY(-50%)}.Logo__Container .Logo .circle .inner div{width:100%;height:0;padding-bottom:100%;border:8px dashed #3c52d1;border-radius:100%;box-sizing:content-box}.Logo__Container .Logo .frame{width:172.8px;right:70.4px;top:50%}.Logo__Container .Logo .frame .inner{transform:translateY(-50%) rotate(45deg)}.Logo__Container .Logo .frame .inner div{border:8px solid #3c52d1;width:100%;height:0;padding-bottom:100%;box-sizing:content-box;box-shadow:5.6px 5.6px 0 0 #a3cacd}.Logo__Container .Logo .tilde{font-size:89.6px;line-height:1}.Logo__Container .Logo .tilde1{top:64px;right:32px}.Logo__Container .Logo .tilde2{top:80px;right:25.6px}.Logo__Container .Logo .tilde3{top:96px;right:19.2px}.Logo__Container .Logo--animated .c>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.1s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .s1>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.2s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .s2>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.3s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .circle>div>div{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:popspin;animation-duration:.6s;animation-delay:.5s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);transform:scale(0)}.Logo__Container .Logo--animated .frame{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slidetop;animation-duration:.6s;animation-delay:.8s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);transform:scale(0) translateY(-160px) rotate(180deg)}.Logo__Container .Logo--animated .blob1{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:pop;animation-duration:.3s;animation-delay:.9s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:scale(0)}.Logo__Container .Logo--animated .blob2{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:blob;animation-duration:.5s;animation-delay:1.1s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-100%)}.Logo__Container .Logo--animated .stripe1{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.4s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(32px)}.Logo__Container .Logo--animated .stripe2{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.5s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(32px)}.Logo__Container .Logo--animated .stripe3{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.6s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(32px)}.Logo__Container .Logo--animated .stripe4{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideleft;animation-duration:.4s;animation-delay:1.7s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(32px)}.Logo__Container .Logo--animated .tilde1{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideright;animation-duration:.4s;animation-delay:1.9s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-32px)}.Logo__Container .Logo--animated .tilde2{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideright;animation-duration:.4s;animation-delay:2s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-32px)}.Logo__Container .Logo--animated .tilde3{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:slideright;animation-duration:.4s;animation-delay:2.1s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateX(-32px)}.Logo__Container .Logo--animated .triangle{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:popspin;animation-duration:.6s;animation-delay:2.8s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);transform:scale(0)}.Logo__Container .Logo--animated .stateof{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:appear;animation-duration:.3s;animation-delay:2.2s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0}.Logo__Container .Logo--animated .year{animation-iteration-count:1;animation-fill-mode:forwards;animation-name:appear;animation-duration:.3s;animation-delay:2.5s;animation-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:0}}.Feature__Links,.Feature__Support{font-size:.9rem;font-weight:400}.FTBlock__Links__Item{margin-bottom:6.66667px}.Features__Overview{display:flex;flex-wrap:wrap;justify-content:space-between}.Features__Overview__Item{width:240px;height:260px;margin-bottom:40px;display:grid;grid-template-rows:210px 50px}.Features__Overview__Item__Footer{border-top:2px solid #9ac6c9;border-bottom:2px solid #9ac6c9;font-size:.9rem;font-weight:800;display:flex;justify-content:center;align-items:center}.Features__Overview__Item__Footer:hover{background:#9ac6c9;color:#fff;cursor:pointer}.capture .FTBlock__Description{grid-column:1/3}@media screen and (max-width:599px){.FTBlock__Resources{margin-top:20px}}.FTBlock__Resources h3{margin-bottom:10px;font-size:1rem}.FTBlock__Resources ul{padding-left:20px}.capture .FTBlock__Resources{display:none}.OpinionScaleChart{padding-top:20px}.OpinionScaleChart svg{overflow:visible}.FeaturesOverviewChart{height:100%}@media screen and (max-width:599px){.FeaturesSectionOverviewChart{height:200px;height:400px}}@media screen and (min-width:600px) and (max-width:999px){.FeaturesSectionOverviewChart{height:500px}}@media screen and (min-width:1000px){.FeaturesSectionOverviewChart{height:500px}}.ToolsOverviewCirclePackingChart svg{overflow:visible}@media screen and (max-width:599px){.TechnologiesOverviewChart{height:800px}}@media screen and (min-width:600px) and (max-width:999px){.TechnologiesOverviewChart{height:800px}}@media screen and (min-width:1000px){.TechnologiesOverviewChart{height:800px}}.Quadrant__Label{color:#41c7c7;fill:#41c7c7;text-transform:uppercase;letter-spacing:3px;opacity:.75;font-size:1.3rem}.Scatterplot__Node{transition:all .5s ease-out}.Scatterplot__Node--active .Scatterplot__Node__Crosshairs{opacity:1;transition:all .2s ease-out}.Scatterplot__Node--active .Scatterplot__Node__Label{transform:translateX(30px);transition:all .2s ease-out}.Scatterplot__Node--active .Scatterplot__Node__Label__Background{opacity:.75;transition:all .2s ease-out}.Scatterplot__Node--active .Scatterplot__Node__Label__Text{fill:#232840;transition:all .2s ease-out}.Scatterplot__Node--active .Scatterplot__Node__Crosshair__Line{stroke-dasharray:8,4;animation:svgAnts 50s linear infinite;animation-fill-mode:forwards}.Scatterplot__Node--inactive{opacity:.3;transition:all .5s ease-out}.Scatterplot__Node__Label{pointer-events:none;transition:all .2s ease-out}.Scatterplot__Node__Label__Background{opacity:0;transition:all .2s ease-out}.Scatterplot__Node__Label__Text{font-size:.8rem;transition:all .2s ease-out}.Scatterplot__Node__Crosshairs{pointer-events:none;opacity:0;transition:all .2s ease-out}.Scatterplot__Node__PointHover{opacity:.75}.Scatterplot__Node__Crosshair__Label{font-size:.8rem}.text-highlight{background:#41c7c7;background:#000}.text-green,.text-highlight{display:inline-block;color:#232840;border-radius:15px;padding:0 12px;font-weight:800}.text-green{background:#41c7c7;background:#85eba2}.text-pink{background:#41c7c7;background:#f649a7}.text-pink,.text-pink-light{display:inline-block;color:#232840;border-radius:15px;padding:0 12px;font-weight:800}.text-pink-light{background:#41c7c7;background:#ec75cb}.text-pink-lighter{background:#41c7c7;background:#d68df0}.text-pink-lighter,.text-red{display:inline-block;color:#232840;border-radius:15px;padding:0 12px;font-weight:800}.text-red{background:#41c7c7;background:#fe6a6a}.text-teal{background:#41c7c7}.text-teal,.text-teal-dark{display:inline-block;color:#232840;border-radius:15px;padding:0 12px;font-weight:800}.text-teal-dark{background:#41c7c7;background:#2ba7a7}.text-teal-darker{background:#41c7c7;background:#1d7e7e}.text-blue,.text-teal-darker{display:inline-block;color:#232840;border-radius:15px;padding:0 12px;font-weight:800}.text-blue{background:#41c7c7;background:#3c52d1}.text-blackred{display:inline-block;background:#41c7c7;color:#232840;border-radius:15px;padding:0 12px;background:rgba(0,0,0,.3);color:#41c7c7;border:1px solid #fe6a6a}.text-blackred,.text-bold{font-weight:800}.Chip{display:block;margin-right:7px;position:relative;overflow:hidden;height:12px;width:12px}.Chip__Inner{height:100%;width:100%;display:block}.Chip--split .Chip__Inner{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.Chip--split .Chip__Inner:last-child{z-index:2;width:200%;height:100%;transform:translateX(-3px) translateY(5px) rotate(-45deg)}.react-tabs{-webkit-tap-highlight-color:transparent}.react-tabs__tab-list{border-bottom:1px solid #aaa;margin:0 0 10px;padding:0}.react-tabs__tab{display:inline-block;border:1px solid transparent;border-bottom:none;bottom:-1px;position:relative;list-style:none;padding:6px 12px;cursor:pointer}.react-tabs__tab--selected{background:#fff;border-color:#aaa;color:#000;border-radius:5px 5px 0 0}.react-tabs__tab--disabled{color:GrayText;cursor:default}.react-tabs__tab:focus{box-shadow:0 0 5px #0188fe;border-color:#0188fe;outline:none}.react-tabs__tab:focus:after{content:"";position:absolute;height:5px;left:-4px;right:-4px;bottom:-5px;background:#fff}.react-tabs__tab-panel{display:none}.react-tabs__tab-panel--selected{display:block}.ToolsArrowsChart{position:relative;margin:auto;display:flex}@media (max-width:800px){.ToolsArrowsChart{padding-left:0;padding-right:0}}.ToolsArrowsChart svg{fill:#e0e4e4;overflow:visible}.ToolsArrowsChart__svg{position:absolute;top:0;right:0;bottom:0;left:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ToolsArrowsChart__axis{stroke:#484f73;stroke-width:1px}.ToolsArrowsChart__axis__label{text-transform:uppercase;letter-spacing:.1em;font-size:.66em;font-weight:600;fill-opacity:.5;dominant-baseline:middle}@keyframes gradientLineSegmentIn{0%{stroke-opacity:0}to{stroke-opacity:1}}.ToolsArrowsChart__tool--is-hidden{opacity:0;pointer-events:none}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line{stroke-opacity:0;animation:gradientLineSegmentIn .2s ease-out;animation-fill-mode:forwards}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-0{animation-delay:0s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-1{animation-delay:.03s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-2{animation-delay:.06s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-3{animation-delay:.09s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-4{animation-delay:.12s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-5{animation-delay:.15s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-6{animation-delay:.18s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-7{animation-delay:.21s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-8{animation-delay:.24s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-9{animation-delay:.27s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-10{animation-delay:.3s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-11{animation-delay:.33s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-12{animation-delay:.36s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-13{animation-delay:.39s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-14{animation-delay:.42s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-15{animation-delay:.45s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-16{animation-delay:.48s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-17{animation-delay:.51s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-18{animation-delay:.54s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-19{animation-delay:.57s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-20{animation-delay:.6s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-21{animation-delay:.63s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-22{animation-delay:.66s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-23{animation-delay:.69s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-24{animation-delay:.72s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-25{animation-delay:.75s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-26{animation-delay:.78s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-27{animation-delay:.81s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-28{animation-delay:.84s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-29{animation-delay:.87s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-30{animation-delay:.9s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-31{animation-delay:.93s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-32{animation-delay:.96s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-33{animation-delay:.99s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-34{animation-delay:1.02s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-35{animation-delay:1.05s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-36{animation-delay:1.08s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-37{animation-delay:1.11s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-38{animation-delay:1.14s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-39{animation-delay:1.17s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-40{animation-delay:1.2s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-41{animation-delay:1.23s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-42{animation-delay:1.26s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-43{animation-delay:1.29s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-44{animation-delay:1.32s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-45{animation-delay:1.35s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-46{animation-delay:1.38s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-47{animation-delay:1.41s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-48{animation-delay:1.44s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-49{animation-delay:1.47s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-50{animation-delay:1.5s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-51{animation-delay:1.53s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-52{animation-delay:1.56s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-53{animation-delay:1.59s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-54{animation-delay:1.62s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-55{animation-delay:1.65s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-56{animation-delay:1.68s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-57{animation-delay:1.71s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-58{animation-delay:1.74s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-59{animation-delay:1.77s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-60{animation-delay:1.8s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-61{animation-delay:1.83s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-62{animation-delay:1.86s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-63{animation-delay:1.89s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-64{animation-delay:1.92s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-65{animation-delay:1.95s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-66{animation-delay:1.98s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-67{animation-delay:2.01s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-68{animation-delay:2.04s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-69{animation-delay:2.07s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-70{animation-delay:2.1s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-71{animation-delay:2.13s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-72{animation-delay:2.16s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-73{animation-delay:2.19s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-74{animation-delay:2.22s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-75{animation-delay:2.25s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-76{animation-delay:2.28s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-77{animation-delay:2.31s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-78{animation-delay:2.34s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-79{animation-delay:2.37s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-80{animation-delay:2.4s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-81{animation-delay:2.43s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-82{animation-delay:2.46s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-83{animation-delay:2.49s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-84{animation-delay:2.52s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-85{animation-delay:2.55s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-86{animation-delay:2.58s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-87{animation-delay:2.61s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-88{animation-delay:2.64s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-89{animation-delay:2.67s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-90{animation-delay:2.7s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-91{animation-delay:2.73s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-92{animation-delay:2.76s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-93{animation-delay:2.79s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-94{animation-delay:2.82s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-95{animation-delay:2.85s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-96{animation-delay:2.88s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-97{animation-delay:2.91s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-98{animation-delay:2.94s}.ToolsArrowsChart__tool--is-active .ToolsArrowsChart__gradient-line--nth-99{animation-delay:2.97s}.ToolsArrowsChart__tool--is-hovering .ToolsArrowsChart__year{fill-opacity:1}.ToolsArrowsChart__tool--is-hovering-other text{fill-opacity:0;stroke-opacity:0}.ToolsArrowsChart__tool--is-hovering-other .ToolsArrowsChart__gradient-line{stroke:#232840;stroke-width:1!important}.ToolsArrowsChart__tool--is-hovering-other .ToolsArrowsChart__now{fill-opacity:.2!important}.ToolsArrowsChart__hover-background{stroke-width:30px;stroke:transparent;fill:none}.ToolsArrowsChart__year{fill-opacity:0}.ToolsArrowsChart__gradient-line{fill:none;stroke-width:4.5px;mix-blend-mode:lighten;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}@keyframes fadeInSlideUp{0%{fill-opacity:0;transform:translateY(1em)}to{fill-opacity:1;transform:translateY(0)}}.ToolsArrowsChart__year{font-size:.8em;font-weight:600;pointer-events:none}.ToolsArrowsChart__label-background{font-size:.8em;font-weight:600;stroke:#1a1f35;stroke-width:3px}.ToolsArrowsChart__label{font-size:.8em;font-weight:600}.ToolsArrowsChart__label__box{cursor:default}.ToolsArrowsChart__label__box text{pointer-events:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ToolsArrowsChart__listener{fill:transparent}.ToolsArrowsChart__label{cursor:pointer}.ToolsArrowsChart__label:hover{fill:#fff}
State of JS 2020: Demographics [hi-IN] general.skip_to_content [hi-IN] general.open_nav
Let's get to know the real you.
Your Country Completion percentage: 81.8% (19449)
Completion percentage: 81.8% (19449)
[hi-IN] general.more_actions Language Completion percentage: 97.1% (23080)
Completion percentage: 97.1% (23080)
[hi-IN] general.more_actions What language did respondents select to fill out the survey?
0% 20% 40% 60% 80% 0% 20% 40% 60% 80% Percentage of Users Ukrainian UkrainianFarsi FarsiJapanese JapaneseIndonesian IndonesianCzech CzechTurkish TurkishSwedish SwedishChinese (Traditional) Chinese (Trad…Italian ItalianChinese (Simplified) Chinese (Simp…Portuguese PortugueseGerman GermanRussian RussianFrench FrenchSpanish SpanishEnglish English82.4%
Yearly Salary Completion percentage: 85% (20201)
Completion percentage: 85% (20201)
[hi-IN] general.more_actions 0% 5% 10% 15% 20% 25% Percentage of Users $0 $0k-$10k $10k-$30k $30k-$50k $50k-$100k $100k-$200k >$200k Salary Range (USD) 0% 5% 10% 15% 20% 25% 5.1% 5.1% 8.6% 8.6% 15.3% 15.3% 17.5% 17.5% 29.9% 29.9% 20.7% 20.7% 2.9% 2.9%
You'll find little hints like this one throughout the survey results that will point out extra features and details.
Years of Experience Completion percentage: 86.2% (20479)
Completion percentage: 86.2% (20479)
[hi-IN] general.more_actions How long you've been working or studying in this field.
0% 5% 10% 15% 20% 25% Percentage of Users <1 1-2 2-5 5-10 10-20 >20 Years of Experience 0% 5% 10% 15% 20% 25% 2.3% 2.3% 8.2% 8.2% 27.9% 27.9% 30% 30% 24.2% 24.2% 7.4% 7.4%
Company Size Completion percentage: 86.3% (20519)
Completion percentage: 86.3% (20519)
[hi-IN] general.more_actions 0% 5% 10% 15% 20% 25% Percentage of Users 1 1-5 5-10 10-20 20-50 50-100 100-1000 >1000 Number of Employees 0% 5% 10% 15% 20% 25% 9.2% 9.2% 8.9% 8.9% 7.2% 7.2% 9.2% 9.2% 12.6% 12.6% 10.9% 10.9% 22.4% 22.4% 19.5% 19.5%
Source Completion percentage: 69.8% (16595)
Completion percentage: 69.8% (16595)
[hi-IN] general.more_actions How did respondents find out about the survey?
This chart aggregates a mix of referrers, URL parameters, and freeform answers.
State of JS: the State of JS mailing list; also matches email
, by email
, etc. State of CSS: the State of CSS mailing list Work: matches work
, colleagues
, coworkers
, etc. Gender [hi-IN] general.more_actions To which gender identity do you most identify?
Male 91.1%
Female 5.8%
Non-Binary/Third Gender 0.9%
Prefer not to say 2.2%
Race & Ethnicity Completion percentage: 84.4% (20046)
Completion percentage: 84.4% (20046)
[hi-IN] general.more_actions 0% 20% 40% 60% 80% 0% 20% 40% 60% 80% Percentage of Users Native American, Pacific Islander, or Indigenous Australian Native Americ…Biracial BiracialMultiracial MultiracialBlack or of African descent Black or of A…Middle Eastern Middle Easter…South Asian South AsianEast Asian East AsianHispanic or Latino/Latina Hispanic or L…White or of European descent White or of E…6.7% 7% 11.4% 70.8%
Job Title Completion percentage: 86.3% (20508)
Completion percentage: 86.3% (20508)
[hi-IN] general.more_actions How do you introduce yourself at parties?
0% 10% 20% 30% 40% 50% 0% 10% 20% 30% 40% 50% Percentage of Users Web Designer Web DesignerBack End Developer/Engineer Back End Deve…CTO CTOWeb Developer Web DeveloperFront End Developer/Engineer Front End Dev…Full Stack Developer/Engineer Full Stack De…3.7% 5.6% 12.1% 33.6% 44.1%
Industry Sector Completion percentage: 78.1% (18572)
Completion percentage: 78.1% (18572)
[hi-IN] general.more_actions Which industry sector(s) do you work in?
0% 10% 20% 30% 40% 0% 10% 20% 30% 40% Percentage of Users Real Estate Real EstateSocial Media Social MediaGovernment GovernmentNews, Media, & Blogging News, Media, …Entertainment EntertainmentHealthcare HealthcareEducation EducationMarketing/Sales/Analytics Tools Marketing/Sal…Finance FinanceEcommerce & Retail Ecommerce & R…Consulting & Services Consulting & …Programming & Technical Tools Programming &…3.3% 3.7% 5.4% 6.6% 7.6% 9.2% 10.6% 11.5% 15.2% 22.7% 26.9% 35.9%
You can use the segmented control at the top right of each block to switch between relative percentages and absolute counts to get a different view of the same data.
CSS Proficiency Completion percentage: 87.5% (20795)
Completion percentage: 87.5% (20795)
[hi-IN] general.more_actions How proficient are you at CSS?
0% 8% 17% 25% 33% 42% Percentage of Users None Beginner Intermediate Advanced Expert CSS Proficiency 0% 8% 17% 25% 33% 42% 1% 1% 10.5% 10.5% 32.5% 32.5% 13% 13% 43.1% 43.1%
None Virtually no knowledge of CSS Beginner Using CSS frameworks and tweaking existing styles Intermediate Knowing specificity rules, being able to create layouts Advanced Mastering animations, interactions, transitions, etc. Expert Able to style an entire front-end from scratch following a consistent methodology
CSS Proficiency Completion percentage: 87.5% (20800)
Completion percentage: 87.5% (20800)
[hi-IN] general.more_actions How proficient are you at JavaScript?
0% 10% 20% 30% 40% 50% Percentage of Users None Beginner Intermediate Advanced Expert JavaScript Proficiency 0% 10% 20% 30% 40% 50% 0.1% 0.1% 2.3% 2.3% 22.7% 22.7% 22.3% 22.3% 52.6% 52.6%
None Not able to write any JavaScript Beginner Writing short, simple JavaScript or jQuery statements Intermediate Working on existing front-end codebases using modern frameworks (React, Vue, etc.) Advanced Architecturing entire front-end codebases from scratch Expert Handling advanced front-end patterns (state management, data loading, etc.)
Back-end Proficiency Completion percentage: 87.4% (20773)
Completion percentage: 87.4% (20773)
[hi-IN] general.more_actions How proficient are you at back-end development?
0% 7% 13% 20% 27% 33% Percentage of Users None Beginner Intermediate Advanced Expert Back-end Proficiency 0% 7% 13% 20% 27% 33% 4.1% 4.1% 7.9% 7.9% 20.9% 20.9% 39.6% 39.6% 27.4% 27.4%
None Not able to handle any back-end work Beginner Able to set up all-in-one CMSs (WordPress, etc.) or static site generators (Jekyll, etc.) Intermediate Able to develop apps using pre-existing frameworks (Rails, Laravel, etc.) Advanced Setting up an entire back-end from scratch (Go, Node.js, etc.) Expert Able to handle complex multi-server or microservices architectures
Recommended Resources [hi-IN] general.more_actions
Advance Your Skills with In-Depth, Modern Front-End Engineering Courses