');-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 [id-ID] general.skip_to_content [id-ID] general.open_nav
Mari mengenal diri anda yang sebenarnya.
Negara Anda Completion percentage: 81.8% (19449)
Completion percentage: 81.8% (19449)
[id-ID] general.more_actions Language Completion percentage: 97.1% (23080)
Completion percentage: 97.1% (23080)
[id-ID] 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%
Gaji Tahunan Completion percentage: 85% (20201)
Completion percentage: 85% (20201)
[id-ID] 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.
Tahun Pengalaman Completion percentage: 86.2% (20479)
Completion percentage: 86.2% (20479)
[id-ID] general.more_actions Sudah berapa lama anda bekerja atau belajar dalam bidang ini.
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%
Ukuran Perusahaan Completion percentage: 86.3% (20519)
Completion percentage: 86.3% (20519)
[id-ID] general.more_actions Seberapa besar perusahaan anda.
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)
[id-ID] 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. Jenis Kelamin [id-ID] general.more_actions To which gender identity do you most identify?
Pria 91.1%
Perempuan 5.8%
Jenis kelamin non-biner/ketiga 0.9%
Memilih untuk tidak menjawab 2.2%
Ras & Etnis Completion percentage: 84.4% (20046)
Completion percentage: 84.4% (20046)
[id-ID] general.more_actions 0% 20% 40% 60% 80% 0% 20% 40% 60% 80% Percentage of Users Penduduk Asli Amerika, Penduduk Kepulauan Pasifik, atau Penduduk Asli Australia Penduduk Asli…Biracial BiracialMultiras MultirasHitam atau Keturunan Afrika Hitam atau Ke…Timur Tengah Timur TengahAsia Selatan Asia SelatanAsia Timur Asia TimurHispanic atau Latino/Latina Hispanic atau…Putih atau Keturunan Eropa Putih atau Ke…6.7% 7% 11.4% 70.8%
Judul Pekerjaan Completion percentage: 86.3% (20508)
Completion percentage: 86.3% (20508)
[id-ID] general.more_actions Bagaimana cara anda memperkenalkan diri?
0% 10% 20% 30% 40% 50% 0% 10% 20% 30% 40% 50% Percentage of Users Desainer Web Desainer WebPengembang/Insinyur Back-end Pengembang/In…CTO CTOPengembang Web Pengembang We…Pengembang/Insinyur Front-end Pengembang/In…Pengembang/Insinyur Full-stack Pengembang/In…3.7% 5.6% 12.1% 33.6% 44.1%
Industry Sector Completion percentage: 78.1% (18572)
Completion percentage: 78.1% (18572)
[id-ID] 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.
Kecakapan CSS Completion percentage: 87.5% (20795)
Completion percentage: 87.5% (20795)
[id-ID] general.more_actions Seberapa mahir anda di CSS?
0% 8% 17% 25% 33% 42% Percentage of Users Tidak ada Pemula Menengah Lanjutan Ahli CSS Proficiency 0% 8% 17% 25% 33% 42% 1% 1% 10.5% 10.5% 32.5% 32.5% 13% 13% 43.1% 43.1%
Tidak ada Hampir tidak ada pengetahuan tentang CSS Pemula Menggunakan kerangka CSS dan menyesuaikan gaya yang ada Menengah Mengetahui aturan kekhususan, mampu membuat tata letak Lanjutan Menguasai animasi, interaksi, transisi, dll Ahli Mampu menata seluruh front-end dari awal mengikuti metodologi yang konsisten
Kecakapan JavaScript Completion percentage: 87.5% (20800)
Completion percentage: 87.5% (20800)
[id-ID] general.more_actions Seberapa mahir anda di JavaScript?
0% 10% 20% 30% 40% 50% Percentage of Users Tidak ada Pemula Menengah Lanjutan Ahli 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%
Tidak ada Tidak dapat menulis Javascript apa pun Pemula Menulis pernyataan Javascript atau jQuery yang singkat dan sederhana Menengah Bekerja pada basis kode front-end yang ada menggunakan kerangka kerja modern (React, Vue, dll.) Lanjutan Merancang seluruh basis kode front-end dari awal Ahli Menangani pola front-end lanjutan (manajemen keadaan, data loading, etc.)
Kecakapan Back-end Completion percentage: 87.4% (20773)
Completion percentage: 87.4% (20773)
[id-ID] general.more_actions Seberapa mahir anda dalam pengembangan back-end?
0% 7% 13% 20% 27% 33% Percentage of Users Tidak ada Pemula Menengah Lanjutan Ahli 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%
Tidak ada Tidak dapat menangani pekerjaan back-end apa pun Pemula Mampu menyiapkan CMS all-in-one (WordPress, dll.) atau generator situs statis (Jekyll, dll.) Menengah Mampu mengembangkan aplikasi menggunakan kerangka kerja yang sudah ada (Rails, Laravel, dll.) Lanjutan Menyiapkan seluruh back-end dari awal (Go, Node.js, dll.) Ahli Mampu menangani arsitektur multi-server atau layanan mikro yang kompleks
Recommended Resources [id-ID] general.more_actions
Advance Your Skills with In-Depth, Modern Front-End Engineering Courses