";font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;padding:1px 4px;position:absolute;right:0;top:0}#root-el.light blockquote{border-bottom:1px solid #33383f;border-top:3px solid #33383f;font-size:1.2rem;line-height:1.25;margin:2.5rem 0;padding-bottom:1em;padding-top:.83333em}#root-el.light blockquote:first-child{margin-top:0}#root-el.light blockquote p{margin-bottom:.5em}#root-el.light blockquote p:last-child{margin-bottom:0}#root-el.light blockquote cite,#root-el.light blockquote small{color:#1c1f23;display:block;font-size:.5em;font-style:normal;font-weight:400;line-height:1.66667;margin-top:1em}#root-el.light blockquote cite:last-child,#root-el.light blockquote small:last-child{margin-bottom:0}#root-el.light dl{margin:0}#root-el.light dt{font-weight:700}#root-el.light dd{margin:0 0 1.66667em}#root-el.light ol,#root-el.light ul{margin:0 0 1.66667em;padding:0 0 0 1.66667em}#root-el.light li>ol,#root-el.light li>ul{margin-bottom:0}#root-el.light hr{background-color:#fff;border:0;height:1px;margin:1.66667em 0}#root-el.light table{font-size:.88889rem;line-height:1.5;margin:0 0 1.66667rem;text-align:left;width:100%}#root-el.light caption{color:#1c1f23;font-size:.875em;font-style:normal;margin-bottom:1em;text-align:left}#root-el.light td,#root-el.light th{border-bottom:1px solid #fff;padding:.5em 5px}#root-el.light label,#root-el.light th{color:#33383f;font-weight:700}#root-el.light label>span{font-size:14px;font-weight:400}#root-el.light input[type=checkbox]+label,#root-el.light input[type=radio]+label{cursor:pointer;padding-left:.25em;padding-right:1em}#root-el.light input[type=email],#root-el.light input[type=password],#root-el.light input[type=search],#root-el.light input[type=tel],#root-el.light input[type=text],#root-el.light input[type=url],#root-el.light select,#root-el.light textarea{background:#fff;border:1px solid #959ea9;border-radius:5px;box-shadow:none;box-sizing:border-box;color:#555e69;display:inline-block;font-size:16px;font-weight:400;line-height:1.5;max-width:100%;padding:.5em 10px;vertical-align:baseline;width:100%}#root-el.light input[type=email]:focus,#root-el.light input[type=password]:focus,#root-el.light input[type=search]:focus,#root-el.light input[type=tel]:focus,#root-el.light input[type=text]:focus,#root-el.light input[type=url]:focus,#root-el.light select:focus,#root-el.light textarea:focus{outline:0}#root-el.light input[type=email],#root-el.light input[type=password],#root-el.light input[type=search],#root-el.light input[type=tel],#root-el.light input[type=text],#root-el.light input[type=url],#root-el.light select{height:2.625em}#root-el.light a.button,#root-el.light button,#root-el.light input[type=button],#root-el.light input[type=reset],#root-el.light input[type=submit]{background:#1de2bc;border:2px solid #1de2bc;border-radius:30px;box-sizing:border-box;color:#fff;display:inline-block;font-size:14px;height:3em;letter-spacing:.075em;line-height:1.5;padding:.25em 35px;text-transform:uppercase;transition:.3s ease}#root-el.light a.button:active,#root-el.light a.button:focus,#root-el.light a.button:hover,#root-el.light button:active,#root-el.light button:focus,#root-el.light button:hover,#root-el.light input[type=button]:active,#root-el.light input[type=button]:focus,#root-el.light input[type=button]:hover,#root-el.light input[type=reset]:active,#root-el.light input[type=reset]:focus,#root-el.light input[type=reset]:hover,#root-el.light input[type=submit]:active,#root-el.light input[type=submit]:focus,#root-el.light input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(29,226,188,.2);color:#33383f;outline:0}#root-el.light a.button{line-height:1.2;padding-bottom:.75em;padding-top:.75em}#root-el.light a.circle{background:transparent;color:#555e69;padding:0;width:3em}#root-el.light a.circle:active,#root-el.light a.circle:focus,#root-el.light a.circle:hover{background:#1de2bc;color:#fff}#root-el.light embed,#root-el.light iframe,#root-el.light object,#root-el.light video{max-width:100%}#root-el.light .js-reframe{margin:0 0 1.66667em}#root-el.light img{height:auto;max-width:100%}#root-el.light .block img,#root-el.light .post-content img,#root-el.light .post-thumbnail img{border-radius:5px}#root-el.light .screen-reader-text,#root-el.light .site-logo+.site-identity .site-description,#root-el.light .site-logo+.site-identity .site-title{border:0;clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;padding:0;position:absolute!important;width:1px}#root-el.light .underline{position:relative}#root-el.light .underline:after{border-left:30px solid #1de2bc;box-shadow:inset 0 1px 0 0 #fff;display:block;content:"";height:3px;margin-top:1rem}#root-el.light .post-content:after{clear:both}#root-el.light .post-content:after,#root-el.light .post-content:before{content:"";display:table}#root-el.light .inner{margin-left:auto;margin-right:auto;max-width:1080px}#root-el.light .site{overflow:hidden;position:relative}#root-el.light .site-content,#root-el.light .site-header-inside,#root-el.light .site-nav-inside{padding-left:3vw;padding-right:3vw}#root-el.light .site-content{background-color:#fff;padding-bottom:2.5em;padding-top:2.5em}@media only screen and (min-width:801px){#root-el.light .site-content{margin-left:30vw;padding-bottom:3.33333em;padding-top:3.33333em}}@media only screen and (min-width:1001px){#root-el.light .site-content{margin-left:300px}}#root-el.light .site-main{margin-bottom:3.33333em}#root-el.light .site-footer,#root-el.light .site-main{margin-left:auto;margin-right:auto;max-width:760px}#root-el.light .style-overflow .site-main{margin-left:0;margin-right:0;max-width:none}#root-el.light .style-overflow .block-content,#root-el.light .style-overflow .block-title,#root-el.light .style-overflow .hero,#root-el.light .style-overflow .post-feed+.block-cta,#root-el.light .style-overflow .post-full .post-content,#root-el.light .style-overflow .post-full .post-header,#root-el.light .style-overflow .post-full .post-meta,#root-el.light .style-overflow .post-full .post-subtitle{margin-left:auto;margin-right:auto;max-width:760px}#root-el.light .site-header{background:#cdd1d7;border-bottom:1px solid #fff;color:#33383f}#root-el.light .site-header-inside{padding-bottom:1.11111em;padding-top:1.11111em}#root-el.light .site-branding{align-items:center;display:flex;font-size:1rem}#root-el.light .site-logo{flex:0 0 auto;margin:0 10px 0 0}#root-el.light .site-logo a{border:0}#root-el.light .site-logo img{max-height:45px}#root-el.light .profile{flex:0 0 auto;margin:0 15px 0 0}#root-el.light .profile a{border:0}#root-el.light .profile .avatar{border:2px solid #1de2bc;box-shadow:0 0 1px 7px rgba(29,226,188,.2);border-radius:100%;display:block;object-fit:cover;height:45px;width:45px}#root-el.light .site-title{color:#33383f;font-size:1.11111rem;font-weight:700;line-height:1;margin:0}#root-el.light .site-title a{border:0;color:inherit}#root-el.light .site-description{font-size:12px;line-height:1;margin:.25em 0 0}#root-el.light .site-navigation{background:#cdd1d7;bottom:0;box-sizing:border-box;-webkit-overflow-scrolling:touch;position:absolute;right:-100%;top:0;transition:right .3s,visibility 0s .3s;visibility:hidden;width:100%;z-index:90}#root-el.light .site-nav-wrap{height:100%;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}#root-el.light .site-nav-inside{padding-bottom:4em;padding-top:4em}#root-el.light .menu{border-bottom:1px solid #33383f;font-size:14px;line-height:1.5;letter-spacing:.15em;list-style:none;margin:0;padding:0;text-transform:uppercase}#root-el.light .menu-item{border-top:1px solid #33383f;padding:.5em 0}#root-el.light .menu-item a{border:0;color:inherit}#root-el.light .current-menu-item a,#root-el.light .menu-item a:hover{color:#1de2bc}#root-el.light .social-links{display:flex;flex-wrap:wrap;margin-top:1.66667em}#root-el.light .social-links a{align-items:center;border:1px solid #33383f;border-radius:50%;color:inherit;display:flex;height:30px;justify-content:center;margin:0 10px .5em 0;transition:.3s ease;width:30px}#root-el.light .social-links a:hover{background:#1de2bc;border-color:#1de2bc;box-shadow:0 0 1px 5px rgba(29,226,188,.2);color:#fff}#root-el.light .social-links .fab{font-size:16px;line-height:1.875}#root-el.light .site-header.dark{background:#33383f;border:0;color:#cdd1d7}#root-el.light .site-header.dark .site-navigation{background:#33383f}#root-el.light .site-header.dark .site-title{color:#fff}#root-el.light .site-header.dark .menu,#root-el.light .site-header.dark .menu-item,#root-el.light .site-header.dark .social-links a{border-color:rgba(205,209,215,.4)}#root-el.light .site-header.dark .social-links a:hover{border-color:#1de2bc}@media only screen and (min-width:801px){#root-el.light .site-header{border-bottom:0;border-right:1px solid #fff;height:100%;left:0;position:fixed;text-align:center;top:0;width:30vw}#root-el.light .site-header-wrap{height:100%;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}#root-el.light .site-header-inside{padding-bottom:3.33333em;padding-top:3.33333em}#root-el.light .site-branding{flex-direction:column}#root-el.light .site-identity{margin-bottom:1.66667em;padding:0}#root-el.light .site-logo{margin:0 0 1.66667em}#root-el.light .site-logo img{max-height:100px}#root-el.light .profile{margin:0 0 1.66667em}#root-el.light .profile a{outline-color:#fff}#root-el.light .profile .avatar{border-width:3px;box-shadow:0 0 1px 11px rgba(29,226,188,.2);object-fit:cover;height:100px;width:100px}#root-el.light .site-title{font-size:1.33333rem;line-height:1.2}#root-el.light .site-description{font-size:14px;line-height:1.2;margin-top:.4em}#root-el.light .menu-toggle{display:none}#root-el.light .menu-toggle~.icon-menu{display:none}#root-el.light .site-navigation{position:static;visibility:visible}#root-el.light .site-nav-inside{padding:0}#root-el.light .social-links{justify-content:center}#root-el.light .social-links a{margin:0 5px .5em}}@media only screen and (min-width:1001px){#root-el.light .site-header{max-width:300px}#root-el.light .site-header-inside{padding-left:24px;padding-right:24px}}@media only screen and (max-width:800px){#root-el.light input#menu-toggle{background:0;border:0;box-shadow:none;color:inherit;padding:0;height:30px;width:30px;display:block;position:absolute;top:2vh;right:5vw;cursor:pointer;opacity:0;z-index:100;-webkit-touch-callout:none}#root-el.light input:checked#menu-toggle~.site-navigation{right:0;transition:right .3s ease-in-out;visibility:visible}#root-el.light .menu--opened .site{height:100%;left:0;overflow:hidden;position:fixed;top:0;transform:translateZ(0);width:100%;z-index:9997}}#root-el.light .post{margin-bottom:3.33333em;position:relative}#root-el.light .post-header{margin-bottom:1.66667em}#root-el.light .post-title{font-size:2.66667rem;margin:0 0 1.66667rem}#root-el.light .post-title a{border:0;color:inherit}#root-el.light .post-title a:hover{color:#1de2bc}#root-el.light .post-subtitle{font-size:1.33333rem;line-height:1.5;margin-bottom:1.66667rem}#root-el.light .post-thumbnail{margin-bottom:1.66667em}#root-el.light .post-thumbnail img{width:100%}#root-el.light .post-avatar{border:none;width:3em;float:left;margin-right:1.5em}#root-el.light .post-meta{color:#1c1f23;font-size:14px;letter-spacing:1px;line-height:1.5;margin-bottom:1.66667rem;text-transform:uppercase}#root-el.light .post-feed{display:flex;flex-wrap:wrap;margin:0 -.83333em 1.66667em}#root-el.light .post-feed .post{display:flex;flex:0 0 50%;flex-direction:column;margin-bottom:1.66667em}#root-el.light .post-feed .post-inside{border:1px solid #fff;border-radius:5px;display:flex;flex:1 1 auto;flex-direction:column;margin:0 .833333em}#root-el.light .post-feed .post-thumbnail{border:0;border-radius:5px 5px 0 0;display:block;margin:0;position:relative;width:100%}#root-el.light .post-feed .post-thumbnail:before{content:"";display:block;padding-top:6.666%}#root-el.light .post-feed .post-thumbnail img{border-radius:5px 5px 0 0;height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}#root-el.light .post-feed .post-header{margin-bottom:.83333rem;padding:1.33333rem 1.33333rem 0}#root-el.light .post-feed .post-header+.post-thumbnail{padding-top:.83333rem}#root-el.light .post-feed .post-title{border-bottom:1px solid #fff;font-size:1.33333rem;margin:0;padding-bottom:.83333rem}#root-el.light .post-feed .post-content{flex-grow:1;font-size:16px;padding:0 1.33333rem}#root-el.light .post-feed .post-description{margin-bottom:1.66667em}#root-el.light .post-feed .post-meta{margin:0;padding:0 1.33333rem 1.33333rem}#root-el.light .post-highlight blockquote{font-size:2rem}@media only screen and (max-width:1000px){#root-el.light .post-feed{margin-left:-1.5vw;margin-right:-1.5vw}#root-el.light .post-feed .post{margin-bottom:3vw}#root-el.light .post-feed .post-inside{margin-left:1.5vw;margin-right:1.5vw}}@media only screen and (max-width:600px),only screen and (min-width:801px)and (max-width:1000px){#root-el.light .post-feed .post{flex:0 0 100%}}#root-el.light .pagination{padding:0 70px 1.66667em;position:relative;text-align:center}#root-el.light .page-number{color:#1c1f23;display:inline-block;font-size:14px;letter-spacing:1px;line-height:1.5;padding:.75em 0;text-transform:uppercase}#root-el.light .newer-posts,#root-el.light .older-posts{position:absolute;top:0}#root-el.light .older-posts{left:0}#root-el.light .newer-posts{right:0}#root-el.light .hero{margin-bottom:2.5em}#root-el.light .hero-title{font-size:2.66667rem;margin:0 0 1rem}#root-el.light .hero-text{font-size:1.33333rem;line-height:1.5;margin:0}#root-el.light .block{margin-bottom:5em}#root-el.light .block.read-next{margin-bottom:3.33333em;margin-top:5em}#root-el.light .block-title{color:#33383f;font-size:1rem;letter-spacing:.11111em;margin:0 0 1.66667rem;text-transform:uppercase}#root-el.light .block-thumbnail{margin-bottom:1.66667em}#root-el.light .block-thumbnail img{width:100%}#root-el.light .block-cta .button{margin-right:15px}#root-el.light .site-footer{align-items:center;border-top:1px solid #fff;display:flex;padding-top:2.5em}#root-el.light .site-footer .site-info{font-size:11px;letter-spacing:.09em;line-height:1.5;margin-bottom:0;text-transform:uppercase}#root-el.light .site-footer .to-top{border:0;color:#555e69;display:none;flex:0 0 auto;height:30px;margin-left:auto;position:relative;width:30px}@media only screen and (max-width:800px){#root-el.light .site-footer .site-info{margin-right:15px}#root-el.light .site-footer .to-top{display:block}}#root-el.light .palette-blue a{border-color:#10bcf9}#root-el.light .palette-blue a:hover{border-color:currentColor}#root-el.light .palette-blue a.button,#root-el.light .palette-blue button,#root-el.light .palette-blue input[type=button],#root-el.light .palette-blue input[type=reset],#root-el.light .palette-blue input[type=submit]{background:#10bcf9;border-color:#10bcf9}#root-el.light .palette-blue a.button:active,#root-el.light .palette-blue a.button:focus,#root-el.light .palette-blue a.button:hover,#root-el.light .palette-blue button:active,#root-el.light .palette-blue button:focus,#root-el.light .palette-blue button:hover,#root-el.light .palette-blue input[type=button]:active,#root-el.light .palette-blue input[type=button]:focus,#root-el.light .palette-blue input[type=button]:hover,#root-el.light .palette-blue input[type=reset]:active,#root-el.light .palette-blue input[type=reset]:focus,#root-el.light .palette-blue input[type=reset]:hover,#root-el.light .palette-blue input[type=submit]:active,#root-el.light .palette-blue input[type=submit]:focus,#root-el.light .palette-blue input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(16,188,249,.2)}#root-el.light .palette-blue a.button.circle{background:transparent}#root-el.light .palette-blue a.button.circle:active,#root-el.light .palette-blue a.button.circle:focus,#root-el.light .palette-blue a.button.circle:hover{background:#10bcf9}#root-el.light .palette-blue .underline:after{border-color:#10bcf9}#root-el.light .palette-blue .profile .avatar{border-color:#10bcf9;box-shadow:0 0 1px 7px rgba(16,188,249,.2)}@media only screen and (min-width:801px){#root-el.light .palette-blue .profile .avatar{box-shadow:0 0 1px 11px rgba(16,188,249,.2)}}#root-el.light .palette-blue .current-menu-item a,#root-el.light .palette-blue .menu-item a:hover{color:#10bcf9}#root-el.light .palette-blue .social-links a{border-color:#fff}#root-el.light .palette-blue .social-links a:hover{background:#10bcf9;border-color:#10bcf9;box-shadow:0 0 1px 5px rgba(16,188,249,.2)}#root-el.light .palette-blue .dark .social-links a{border-color:rgba(85,94,105,.4)}#root-el.light .palette-blue .dark .social-links a:hover{border-color:#10bcf9}#root-el.light .palette-blue .post-title a:hover{color:#10bcf9}#root-el.light .palette-violet a{border-color:#9371e6}#root-el.light .palette-violet a:hover{border-color:currentColor}#root-el.light .palette-violet a.button,#root-el.light .palette-violet button,#root-el.light .palette-violet input[type=button],#root-el.light .palette-violet input[type=reset],#root-el.light .palette-violet input[type=submit]{background:#9371e6;border-color:#9371e6}#root-el.light .palette-violet a.button:active,#root-el.light .palette-violet a.button:focus,#root-el.light .palette-violet a.button:hover,#root-el.light .palette-violet button:active,#root-el.light .palette-violet button:focus,#root-el.light .palette-violet button:hover,#root-el.light .palette-violet input[type=button]:active,#root-el.light .palette-violet input[type=button]:focus,#root-el.light .palette-violet input[type=button]:hover,#root-el.light .palette-violet input[type=reset]:active,#root-el.light .palette-violet input[type=reset]:focus,#root-el.light .palette-violet input[type=reset]:hover,#root-el.light .palette-violet input[type=submit]:active,#root-el.light .palette-violet input[type=submit]:focus,#root-el.light .palette-violet input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(147,113,230,.2)}#root-el.light .palette-violet a.button.circle{background:transparent}#root-el.light .palette-violet a.button.circle:active,#root-el.light .palette-violet a.button.circle:focus,#root-el.light .palette-violet a.button.circle:hover{background:#9371e6}#root-el.light .palette-violet .underline:after{border-color:#9371e6}#root-el.light .palette-violet .profile .avatar{border-color:#9371e6;box-shadow:0 0 1px 7px rgba(147,113,230,.2)}@media only screen and (min-width:801px){#root-el.light .palette-violet .profile .avatar{box-shadow:0 0 1px 11px rgba(147,113,230,.2)}}#root-el.light .palette-violet .current-menu-item a,#root-el.light .palette-violet .menu-item a:hover{color:#e5ddf9}#root-el.light .palette-violet .social-links a{border-color:#33383f}#root-el.light .palette-violet .social-links a:hover{background:#9371e6;border-color:#9371e6;box-shadow:0 0 1px 5px rgba(147,113,230,.2)}#root-el.light .palette-violet .dark .social-links a{border-color:rgba(205,209,215,.4)}#root-el.light .palette-violet .dark .social-links a:hover{border-color:#9371e6}#root-el.light .palette-violet .post-title a:hover{color:#9371e6}#root-el.light .palette-orange a{border-color:#fc6e51}#root-el.light .palette-orange a:hover{border-color:currentColor}#root-el.light .palette-orange a.button,#root-el.light .palette-orange button,#root-el.light .palette-orange input[type=button],#root-el.light .palette-orange input[type=reset],#root-el.light .palette-orange input[type=submit]{background:#fc6e51;border-color:#fc6e51}#root-el.light .palette-orange a.button:active,#root-el.light .palette-orange a.button:focus,#root-el.light .palette-orange a.button:hover,#root-el.light .palette-orange button:active,#root-el.light .palette-orange button:focus,#root-el.light .palette-orange button:hover,#root-el.light .palette-orange input[type=button]:active,#root-el.light .palette-orange input[type=button]:focus,#root-el.light .palette-orange input[type=button]:hover,#root-el.light .palette-orange input[type=reset]:active,#root-el.light .palette-orange input[type=reset]:focus,#root-el.light .palette-orange input[type=reset]:hover,#root-el.light .palette-orange input[type=submit]:active,#root-el.light .palette-orange input[type=submit]:focus,#root-el.light .palette-orange input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(252,110,81,.2)}#root-el.light .palette-orange a.button.circle{background:transparent}#root-el.light .palette-orange a.button.circle:active,#root-el.light .palette-orange a.button.circle:focus,#root-el.light .palette-orange a.button.circle:hover{background:#fc6e51}#root-el.light .palette-orange .underline:after{border-color:#fc6e51}#root-el.light .palette-orange .profile .avatar{border-color:#fc6e51;box-shadow:0 0 1px 7px rgba(252,110,81,.2)}@media only screen and (min-width:801px){#root-el.light .palette-orange .profile .avatar{box-shadow:0 0 1px 11px rgba(252,110,81,.2)}}#root-el.light .palette-orange .current-menu-item a,#root-el.light .palette-orange .menu-item a:hover{color:#fc6e51}#root-el.light .palette-orange .social-links a{border-color:#fff}#root-el.light .palette-orange .social-links a:hover{background:#fc6e51;border-color:#fc6e51;box-shadow:0 0 1px 5px rgba(252,110,81,.2)}#root-el.light .palette-orange .dark .social-links a{border-color:rgba(85,94,105,.4)}#root-el.light .palette-orange .dark .social-links a:hover{border-color:#fc6e51}#root-el.light .palette-orange .post-title a:hover{color:#fc6e51}#root-el.dark body,#root-el.dark html{font-family:Roboto,Helvetica Neue,Helvetica,sans-serif;font-size:112.5%;height:100%;min-height:100%}@media only screen and (max-width:600px){#root-el.dark body,#root-el.dark html{font-size:100%}}#root-el.dark body{background:#000;color:#959ea9;line-height:1.66667}#root-el.dark a{border-bottom:2px solid #1de2bc;color:#cdd1d7;text-decoration:none;transition:border .3s ease,color .3s ease}#root-el.dark a:hover{border-color:currentColor;text-decoration:none}#root-el.dark .no-border *{border:none}#root-el.dark h1,#root-el.dark h2,#root-el.dark h3,#root-el.dark h4,#root-el.dark h5,#root-el.dark h6{color:#cdd1d7;font-weight:700;line-height:1.2;margin:1.66667rem 0 .83333rem;text-rendering:optimizeLegibility}#root-el.dark h1:first-child,#root-el.dark h2:first-child,#root-el.dark h3:first-child,#root-el.dark h4:first-child,#root-el.dark h5:first-child,#root-el.dark h6:first-child{margin-top:0}#root-el.dark h1{font-size:2.22222rem}#root-el.dark h2{font-size:1.88889rem}#root-el.dark h3{font-size:1.33333rem}#root-el.dark h4{font-size:1.11111rem}#root-el.dark h5{font-size:.88889rem}#root-el.dark h6{font-size:14px;letter-spacing:.075em;text-transform:uppercase}#root-el.dark p{margin:0 0 1.66667em}#root-el.dark address{font-style:italic;margin:0 0 1.66667em}#root-el.dark ins,#root-el.dark mark{background:#fff493;color:#cdd1d7;padding:0 3px;text-decoration:none}#root-el.dark pre{border:1px solid #33383f;border-radius:5px;color:#cdd1d7;font-size:.88889rem;margin:0 0 1.66667rem;overflow:auto;padding:1.5em 1.875em;position:relative;white-space:pre}#root-el.dark pre:before{border-color:#000;border-style:solid;border-width:0 0 1px 1px;color:inherit;content:">";font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;padding:1px 4px;position:absolute;right:0;top:0}#root-el.dark blockquote{border-bottom:1px solid #cdd1d7;border-top:3px solid #cdd1d7;font-size:1.2rem;line-height:1.25;margin:2.5rem 0;padding-bottom:1em;padding-top:.83333em}#root-el.dark blockquote:first-child{margin-top:0}#root-el.dark blockquote p{margin-bottom:.5em}#root-el.dark blockquote p:last-child{margin-bottom:0}#root-el.dark blockquote cite,#root-el.dark blockquote small{color:#e9ebed;display:block;font-size:.5em;font-style:normal;font-weight:400;line-height:1.66667;margin-top:1em}#root-el.dark blockquote cite:last-child,#root-el.dark blockquote small:last-child{margin-bottom:0}#root-el.dark dl{margin:0}#root-el.dark dt{font-weight:700}#root-el.dark dd{margin:0 0 1.66667em}#root-el.dark ol,#root-el.dark ul{margin:0 0 1.66667em;padding:0 0 0 1.66667em}#root-el.dark li>ol,#root-el.dark li>ul{margin-bottom:0}#root-el.dark hr{background-color:#000;border:0;height:1px;margin:1.66667em 0}#root-el.dark table{font-size:.88889rem;line-height:1.5;margin:0 0 1.66667rem;text-align:left;width:100%}#root-el.dark caption{color:#e9ebed;font-size:.875em;font-style:normal;margin-bottom:1em;text-align:left}#root-el.dark td,#root-el.dark th{border-bottom:1px solid #000;padding:.5em 5px}#root-el.dark label,#root-el.dark th{color:#cdd1d7;font-weight:700}#root-el.dark label>span{font-size:14px;font-weight:400}#root-el.dark input[type=checkbox]+label,#root-el.dark input[type=radio]+label{cursor:pointer;padding-left:.25em;padding-right:1em}#root-el.dark input[type=email],#root-el.dark input[type=password],#root-el.dark input[type=search],#root-el.dark input[type=tel],#root-el.dark input[type=text],#root-el.dark input[type=url],#root-el.dark select,#root-el.dark textarea{background:#fff;border:1px solid #33383f;border-radius:5px;box-shadow:none;box-sizing:border-box;color:#959ea9;display:inline-block;font-size:16px;font-weight:400;line-height:1.5;max-width:100%;padding:.5em 10px;vertical-align:baseline;width:100%}#root-el.dark input[type=email]:focus,#root-el.dark input[type=password]:focus,#root-el.dark input[type=search]:focus,#root-el.dark input[type=tel]:focus,#root-el.dark input[type=text]:focus,#root-el.dark input[type=url]:focus,#root-el.dark select:focus,#root-el.dark textarea:focus{outline:0}#root-el.dark input[type=email],#root-el.dark input[type=password],#root-el.dark input[type=search],#root-el.dark input[type=tel],#root-el.dark input[type=text],#root-el.dark input[type=url],#root-el.dark select{height:2.625em}#root-el.dark a.button,#root-el.dark button,#root-el.dark input[type=button],#root-el.dark input[type=reset],#root-el.dark input[type=submit]{background:#1de2bc;border:2px solid #1de2bc;border-radius:30px;box-sizing:border-box;color:#000;display:inline-block;font-size:14px;height:3em;letter-spacing:.075em;line-height:1.5;padding:.25em 35px;text-transform:uppercase;transition:.3s ease}#root-el.dark a.button:active,#root-el.dark a.button:focus,#root-el.dark a.button:hover,#root-el.dark button:active,#root-el.dark button:focus,#root-el.dark button:hover,#root-el.dark input[type=button]:active,#root-el.dark input[type=button]:focus,#root-el.dark input[type=button]:hover,#root-el.dark input[type=reset]:active,#root-el.dark input[type=reset]:focus,#root-el.dark input[type=reset]:hover,#root-el.dark input[type=submit]:active,#root-el.dark input[type=submit]:focus,#root-el.dark input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(29,226,188,.2);color:#cdd1d7;outline:0}#root-el.dark a.button{line-height:1.2;padding-bottom:.75em;padding-top:.75em}#root-el.dark a.circle{background:transparent;color:#959ea9;padding:0;width:3em}#root-el.dark a.circle:active,#root-el.dark a.circle:focus,#root-el.dark a.circle:hover{background:#1de2bc;color:#000}#root-el.dark embed,#root-el.dark iframe,#root-el.dark object,#root-el.dark video{max-width:100%}#root-el.dark .js-reframe{margin:0 0 1.66667em}#root-el.dark img{height:auto;max-width:100%}#root-el.dark .block img,#root-el.dark .post-content img,#root-el.dark .post-thumbnail img{border-radius:5px}#root-el.dark .screen-reader-text,#root-el.dark .site-logo+.site-identity .site-description,#root-el.dark .site-logo+.site-identity .site-title{border:0;clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;padding:0;position:absolute!important;width:1px}#root-el.dark .underline{position:relative}#root-el.dark .underline:after{border-left:30px solid #1de2bc;box-shadow:inset 0 1px 0 0 #000;display:block;content:"";height:3px;margin-top:1rem}#root-el.dark .post-content:after{clear:both}#root-el.dark .post-content:after,#root-el.dark .post-content:before{content:"";display:table}#root-el.dark .inner{margin-left:auto;margin-right:auto;max-width:1080px}#root-el.dark .site{overflow:hidden;position:relative}#root-el.dark .site-content,#root-el.dark .site-header-inside,#root-el.dark .site-nav-inside{padding-left:3vw;padding-right:3vw}#root-el.dark .site-content{background-color:#000;padding-bottom:2.5em;padding-top:2.5em}@media only screen and (min-width:801px){#root-el.dark .site-content{margin-left:30vw;padding-bottom:3.33333em;padding-top:3.33333em}}@media only screen and (min-width:1001px){#root-el.dark .site-content{margin-left:300px}}#root-el.dark .site-main{margin-bottom:3.33333em}#root-el.dark .site-footer,#root-el.dark .site-main{margin-left:auto;margin-right:auto;max-width:760px}#root-el.dark .style-overflow .site-main{margin-left:0;margin-right:0;max-width:none}#root-el.dark .style-overflow .block-content,#root-el.dark .style-overflow .block-title,#root-el.dark .style-overflow .hero,#root-el.dark .style-overflow .post-feed+.block-cta,#root-el.dark .style-overflow .post-full .post-content,#root-el.dark .style-overflow .post-full .post-header,#root-el.dark .style-overflow .post-full .post-meta,#root-el.dark .style-overflow .post-full .post-subtitle{margin-left:auto;margin-right:auto;max-width:760px}#root-el.dark .site-header{background:#cdd1d7;border-bottom:1px solid #000;color:#33383f}#root-el.dark .site-header-inside{padding-bottom:1.11111em;padding-top:1.11111em}#root-el.dark .site-branding{align-items:center;display:flex;font-size:1rem}#root-el.dark .site-logo{flex:0 0 auto;margin:0 10px 0 0}#root-el.dark .site-logo a{border:0}#root-el.dark .site-logo img{max-height:45px}#root-el.dark .profile{flex:0 0 auto;margin:0 15px 0 0}#root-el.dark .profile a{border:0}#root-el.dark .profile .avatar{border:2px solid #1de2bc;box-shadow:0 0 1px 7px rgba(29,226,188,.2);border-radius:100%;display:block;object-fit:cover;height:45px;width:45px}#root-el.dark .site-title{color:#33383f;font-size:1.11111rem;font-weight:700;line-height:1;margin:0}#root-el.dark .site-title a{border:0;color:inherit}#root-el.dark .site-description{font-size:12px;line-height:1;margin:.25em 0 0}#root-el.dark .site-navigation{background:#cdd1d7;bottom:0;box-sizing:border-box;-webkit-overflow-scrolling:touch;position:absolute;right:-100%;top:0;transition:right .3s,visibility 0s .3s;visibility:hidden;width:100%;z-index:90}#root-el.dark .site-nav-wrap{height:100%;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}#root-el.dark .site-nav-inside{padding-bottom:4em;padding-top:4em}#root-el.dark .menu{border-bottom:1px solid #33383f;font-size:14px;line-height:1.5;letter-spacing:.15em;list-style:none;margin:0;padding:0;text-transform:uppercase}#root-el.dark .menu-item{border-top:1px solid #33383f;padding:.5em 0}#root-el.dark .menu-item a{border:0;color:inherit}#root-el.dark .current-menu-item a,#root-el.dark .menu-item a:hover{color:#1de2bc}#root-el.dark .social-links{display:flex;flex-wrap:wrap;margin-top:1.66667em}#root-el.dark .social-links a{align-items:center;border:1px solid #33383f;border-radius:50%;color:inherit;display:flex;height:30px;justify-content:center;margin:0 10px .5em 0;transition:.3s ease;width:30px}#root-el.dark .social-links a:hover{background:#1de2bc;border-color:#1de2bc;box-shadow:0 0 1px 5px rgba(29,226,188,.2);color:#fff}#root-el.dark .social-links .fab{font-size:16px;line-height:1.875}#root-el.dark .site-header.dark{background:#33383f;border:0;color:#cdd1d7}#root-el.dark .site-header.dark .site-navigation{background:#33383f}#root-el.dark .site-header.dark .site-title{color:#fff}#root-el.dark .site-header.dark .menu,#root-el.dark .site-header.dark .menu-item,#root-el.dark .site-header.dark .social-links a{border-color:rgba(205,209,215,.4)}#root-el.dark .site-header.dark .social-links a:hover{border-color:#1de2bc}@media only screen and (min-width:801px){#root-el.dark .site-header{border-bottom:0;border-right:1px solid #000;height:100%;left:0;position:fixed;text-align:center;top:0;width:30vw}#root-el.dark .site-header-wrap{height:100%;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}#root-el.dark .site-header-inside{padding-bottom:3.33333em;padding-top:3.33333em}#root-el.dark .site-branding{flex-direction:column}#root-el.dark .site-identity{margin-bottom:1.66667em;padding:0}#root-el.dark .site-logo{margin:0 0 1.66667em}#root-el.dark .site-logo img{max-height:100px}#root-el.dark .profile{margin:0 0 1.66667em}#root-el.dark .profile a{outline-color:#000}#root-el.dark .profile .avatar{border-width:3px;box-shadow:0 0 1px 11px rgba(29,226,188,.2);object-fit:cover;height:100px;width:100px}#root-el.dark .site-title{font-size:1.33333rem;line-height:1.2}#root-el.dark .site-description{font-size:14px;line-height:1.2;margin-top:.4em}#root-el.dark .menu-toggle{display:none}#root-el.dark .menu-toggle~.icon-menu{display:none}#root-el.dark .site-navigation{position:static;visibility:visible}#root-el.dark .site-nav-inside{padding:0}#root-el.dark .social-links{justify-content:center}#root-el.dark .social-links a{margin:0 5px .5em}}@media only screen and (min-width:1001px){#root-el.dark .site-header{max-width:300px}#root-el.dark .site-header-inside{padding-left:24px;padding-right:24px}}@media only screen and (max-width:800px){#root-el.dark input#menu-toggle{background:0;border:0;box-shadow:none;color:inherit;padding:0;height:30px;width:30px;display:block;position:absolute;top:2vh;right:5vw;cursor:pointer;opacity:0;z-index:100;-webkit-touch-callout:none}#root-el.dark input:checked#menu-toggle~.site-navigation{right:0;transition:right .3s ease-in-out;visibility:visible}#root-el.dark .menu--opened .site{height:100%;left:0;overflow:hidden;position:fixed;top:0;transform:translateZ(0);width:100%;z-index:9997}}#root-el.dark .post{margin-bottom:3.33333em;position:relative}#root-el.dark .post-header{margin-bottom:1.66667em}#root-el.dark .post-title{font-size:2.66667rem;margin:0 0 1.66667rem}#root-el.dark .post-title a{border:0;color:inherit}#root-el.dark .post-title a:hover{color:#1de2bc}#root-el.dark .post-subtitle{font-size:1.33333rem;line-height:1.5;margin-bottom:1.66667rem}#root-el.dark .post-thumbnail{margin-bottom:1.66667em}#root-el.dark .post-thumbnail img{width:100%}#root-el.dark .post-avatar{border:none;width:3em;float:left;margin-right:1.5em}#root-el.dark .post-meta{color:#e9ebed;font-size:14px;letter-spacing:1px;line-height:1.5;margin-bottom:1.66667rem;text-transform:uppercase}#root-el.dark .post-feed{display:flex;flex-wrap:wrap;margin:0 -.83333em 1.66667em}#root-el.dark .post-feed .post{display:flex;flex:0 0 50%;flex-direction:column;margin-bottom:1.66667em}#root-el.dark .post-feed .post-inside{border:1px solid #000;border-radius:5px;display:flex;flex:1 1 auto;flex-direction:column;margin:0 .833333em}#root-el.dark .post-feed .post-thumbnail{border:0;border-radius:5px 5px 0 0;display:block;margin:0;position:relative;width:100%}#root-el.dark .post-feed .post-thumbnail:before{content:"";display:block;padding-top:6.666%}#root-el.dark .post-feed .post-thumbnail img{border-radius:5px 5px 0 0;height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}#root-el.dark .post-feed .post-header{margin-bottom:.83333rem;padding:1.33333rem 1.33333rem 0}#root-el.dark .post-feed .post-header+.post-thumbnail{padding-top:.83333rem}#root-el.dark .post-feed .post-title{border-bottom:1px solid #000;font-size:1.33333rem;margin:0;padding-bottom:.83333rem}#root-el.dark .post-feed .post-content{flex-grow:1;font-size:16px;padding:0 1.33333rem}#root-el.dark .post-feed .post-description{margin-bottom:1.66667em}#root-el.dark .post-feed .post-meta{margin:0;padding:0 1.33333rem 1.33333rem}#root-el.dark .post-highlight blockquote{font-size:2rem}@media only screen and (max-width:1000px){#root-el.dark .post-feed{margin-left:-1.5vw;margin-right:-1.5vw}#root-el.dark .post-feed .post{margin-bottom:3vw}#root-el.dark .post-feed .post-inside{margin-left:1.5vw;margin-right:1.5vw}}@media only screen and (max-width:600px),only screen and (min-width:801px)and (max-width:1000px){#root-el.dark .post-feed .post{flex:0 0 100%}}#root-el.dark .pagination{padding:0 70px 1.66667em;position:relative;text-align:center}#root-el.dark .page-number{color:#e9ebed;display:inline-block;font-size:14px;letter-spacing:1px;line-height:1.5;padding:.75em 0;text-transform:uppercase}#root-el.dark .newer-posts,#root-el.dark .older-posts{position:absolute;top:0}#root-el.dark .older-posts{left:0}#root-el.dark .newer-posts{right:0}#root-el.dark .hero{margin-bottom:2.5em}#root-el.dark .hero-title{font-size:2.66667rem;margin:0 0 1rem}#root-el.dark .hero-text{font-size:1.33333rem;line-height:1.5;margin:0}#root-el.dark .block{margin-bottom:5em}#root-el.dark .block.read-next{margin-bottom:3.33333em;margin-top:5em}#root-el.dark .block-title{color:#cdd1d7;font-size:1rem;letter-spacing:.11111em;margin:0 0 1.66667rem;text-transform:uppercase}#root-el.dark .block-thumbnail{margin-bottom:1.66667em}#root-el.dark .block-thumbnail img{width:100%}#root-el.dark .block-cta .button{margin-right:15px}#root-el.dark .site-footer{align-items:center;border-top:1px solid #000;display:flex;padding-top:2.5em}#root-el.dark .site-footer .site-info{font-size:11px;letter-spacing:.09em;line-height:1.5;margin-bottom:0;text-transform:uppercase}#root-el.dark .site-footer .to-top{border:0;color:#959ea9;display:none;flex:0 0 auto;height:30px;margin-left:auto;position:relative;width:30px}@media only screen and (max-width:800px){#root-el.dark .site-footer .site-info{margin-right:15px}#root-el.dark .site-footer .to-top{display:block}}#root-el.dark .palette-blue a{border-color:#10bcf9}#root-el.dark .palette-blue a:hover{border-color:currentColor}#root-el.dark .palette-blue a.button,#root-el.dark .palette-blue button,#root-el.dark .palette-blue input[type=button],#root-el.dark .palette-blue input[type=reset],#root-el.dark .palette-blue input[type=submit]{background:#10bcf9;border-color:#10bcf9}#root-el.dark .palette-blue a.button:active,#root-el.dark .palette-blue a.button:focus,#root-el.dark .palette-blue a.button:hover,#root-el.dark .palette-blue button:active,#root-el.dark .palette-blue button:focus,#root-el.dark .palette-blue button:hover,#root-el.dark .palette-blue input[type=button]:active,#root-el.dark .palette-blue input[type=button]:focus,#root-el.dark .palette-blue input[type=button]:hover,#root-el.dark .palette-blue input[type=reset]:active,#root-el.dark .palette-blue input[type=reset]:focus,#root-el.dark .palette-blue input[type=reset]:hover,#root-el.dark .palette-blue input[type=submit]:active,#root-el.dark .palette-blue input[type=submit]:focus,#root-el.dark .palette-blue input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(16,188,249,.2)}#root-el.dark .palette-blue a.button.circle{background:transparent}#root-el.dark .palette-blue a.button.circle:active,#root-el.dark .palette-blue a.button.circle:focus,#root-el.dark .palette-blue a.button.circle:hover{background:#10bcf9}#root-el.dark .palette-blue .underline:after{border-color:#10bcf9}#root-el.dark .palette-blue .profile .avatar{border-color:#10bcf9;box-shadow:0 0 1px 7px rgba(16,188,249,.2)}@media only screen and (min-width:801px){#root-el.dark .palette-blue .profile .avatar{box-shadow:0 0 1px 11px rgba(16,188,249,.2)}}#root-el.dark .palette-blue .current-menu-item a,#root-el.dark .palette-blue .menu-item a:hover{color:#10bcf9}#root-el.dark .palette-blue .social-links a{border-color:#000}#root-el.dark .palette-blue .social-links a:hover{background:#10bcf9;border-color:#10bcf9;box-shadow:0 0 1px 5px rgba(16,188,249,.2)}#root-el.dark .palette-blue .dark .social-links a{border-color:rgba(149,158,169,.4)}#root-el.dark .palette-blue .dark .social-links a:hover{border-color:#10bcf9}#root-el.dark .palette-blue .post-title a:hover{color:#10bcf9}#root-el.dark .palette-violet a{border-color:#9371e6}#root-el.dark .palette-violet a:hover{border-color:currentColor}#root-el.dark .palette-violet a.button,#root-el.dark .palette-violet button,#root-el.dark .palette-violet input[type=button],#root-el.dark .palette-violet input[type=reset],#root-el.dark .palette-violet input[type=submit]{background:#9371e6;border-color:#9371e6}#root-el.dark .palette-violet a.button:active,#root-el.dark .palette-violet a.button:focus,#root-el.dark .palette-violet a.button:hover,#root-el.dark .palette-violet button:active,#root-el.dark .palette-violet button:focus,#root-el.dark .palette-violet button:hover,#root-el.dark .palette-violet input[type=button]:active,#root-el.dark .palette-violet input[type=button]:focus,#root-el.dark .palette-violet input[type=button]:hover,#root-el.dark .palette-violet input[type=reset]:active,#root-el.dark .palette-violet input[type=reset]:focus,#root-el.dark .palette-violet input[type=reset]:hover,#root-el.dark .palette-violet input[type=submit]:active,#root-el.dark .palette-violet input[type=submit]:focus,#root-el.dark .palette-violet input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(147,113,230,.2)}#root-el.dark .palette-violet a.button.circle{background:transparent}#root-el.dark .palette-violet a.button.circle:active,#root-el.dark .palette-violet a.button.circle:focus,#root-el.dark .palette-violet a.button.circle:hover{background:#9371e6}#root-el.dark .palette-violet .underline:after{border-color:#9371e6}#root-el.dark .palette-violet .profile .avatar{border-color:#9371e6;box-shadow:0 0 1px 7px rgba(147,113,230,.2)}@media only screen and (min-width:801px){#root-el.dark .palette-violet .profile .avatar{box-shadow:0 0 1px 11px rgba(147,113,230,.2)}}#root-el.dark .palette-violet .current-menu-item a,#root-el.dark .palette-violet .menu-item a:hover{color:#e5ddf9}#root-el.dark .palette-violet .social-links a{border-color:#33383f}#root-el.dark .palette-violet .social-links a:hover{background:#9371e6;border-color:#9371e6;box-shadow:0 0 1px 5px rgba(147,113,230,.2)}#root-el.dark .palette-violet .dark .social-links a{border-color:rgba(205,209,215,.4)}#root-el.dark .palette-violet .dark .social-links a:hover{border-color:#9371e6}#root-el.dark .palette-violet .post-title a:hover{color:#9371e6}#root-el.dark .palette-orange a{border-color:#fc6e51}#root-el.dark .palette-orange a:hover{border-color:currentColor}#root-el.dark .palette-orange a.button,#root-el.dark .palette-orange button,#root-el.dark .palette-orange input[type=button],#root-el.dark .palette-orange input[type=reset],#root-el.dark .palette-orange input[type=submit]{background:#fc6e51;border-color:#fc6e51}#root-el.dark .palette-orange a.button:active,#root-el.dark .palette-orange a.button:focus,#root-el.dark .palette-orange a.button:hover,#root-el.dark .palette-orange button:active,#root-el.dark .palette-orange button:focus,#root-el.dark .palette-orange button:hover,#root-el.dark .palette-orange input[type=button]:active,#root-el.dark .palette-orange input[type=button]:focus,#root-el.dark .palette-orange input[type=button]:hover,#root-el.dark .palette-orange input[type=reset]:active,#root-el.dark .palette-orange input[type=reset]:focus,#root-el.dark .palette-orange input[type=reset]:hover,#root-el.dark .palette-orange input[type=submit]:active,#root-el.dark .palette-orange input[type=submit]:focus,#root-el.dark .palette-orange input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(252,110,81,.2)}#root-el.dark .palette-orange a.button.circle{background:transparent}#root-el.dark .palette-orange a.button.circle:active,#root-el.dark .palette-orange a.button.circle:focus,#root-el.dark .palette-orange a.button.circle:hover{background:#fc6e51}#root-el.dark .palette-orange .underline:after{border-color:#fc6e51}#root-el.dark .palette-orange .profile .avatar{border-color:#fc6e51;box-shadow:0 0 1px 7px rgba(252,110,81,.2)}@media only screen and (min-width:801px){#root-el.dark .palette-orange .profile .avatar{box-shadow:0 0 1px 11px rgba(252,110,81,.2)}}#root-el.dark .palette-orange .current-menu-item a,#root-el.dark .palette-orange .menu-item a:hover{color:#fc6e51}#root-el.dark .palette-orange .social-links a{border-color:#000}#root-el.dark .palette-orange .social-links a:hover{background:#fc6e51;border-color:#fc6e51;box-shadow:0 0 1px 5px rgba(252,110,81,.2)}#root-el.dark .palette-orange .dark .social-links a{border-color:rgba(149,158,169,.4)}#root-el.dark .palette-orange .dark .social-links a:hover{border-color:#fc6e51}#root-el.dark .palette-orange .post-title a:hover{color:#fc6e51}
How to get ESlint and Prettier to play nice in VS Code? - Rohit's Personal Blog This app works best with JavaScript enabled.
Set up eslint to run after prettier, or even before, you decide
Do you have your project setup with both Prettier and Eslint? Do you want them to run in a specific order instead of using ESLint to run prettier? Here's how to set your own order in VS Code with this extension:
This extension will register a new "codeAction" which will run 'Format Document' using the default formatter (prettier in our case) in VS Code.
source.formatDocument
Using this and the editor.codeActionsOnSave
setting in VS Code you can specify the order in which to run the eslint codeAction, source.fixAll.eslint
, and format document.
Install
Requires: VS Code 1.44+
Install through VS Code extensions:
Visual Studio Code Market Place: Format Code Action
Can also be installed in VS Code: Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
ext install rohit-gohri.format-code-action
Usage
You will need both the prettier-vscode
and vscode-eslint
extensions installed for this config to work.
Disbale formatOnSave
and use the source.formatDocument
codeAction in whatever order you want with VS Code settings:
"editor.formatOnSave": false,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": [
"source.formatDocument",
"source.fixAll.eslint"
]
This runs 'Format Document' with the default formatter (in this case prettier) and then eslint --fix
for all document types.
Or for a specific lanuage only
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.formatOnSave": false,
"editor.codeActionsOnSave": [
"source.formatDocument",
"source.fixAll.eslint"
]
},
This would run prettier by default, but for javascript files would run prettier and then eslint. If you want to reverse the order then just reverse the array.
Motivation
I wanted to use prettier and eslint together, to override some of prettier's mpre opinionated style rules with a eslint config (particularly brace-style ).
Instead of using workarounds like prettier-eslint
which don't work for all eslint configurations as it hasn't been updated to work with eslint v6 properly . We can simply run prettier and eslint one by one like one would do on the command line. Here is how that looks like in my package.json
:
"scripts": {
"format": "npm run prettier:fix && npm run lint:fix",
"lint": "eslint src --ext=js",
"lint:fix": "npm run lint -- --fix",
"prettier": "prettier -c",
"prettier:fix": "npm run prettier -- --write"
}
The npm run format
command allows me to fix some of the prettier formatting with eslint by running them both in an order. I wanted to replicate this same behavior with my editor's "Format on Save" functionality.
VS Code only allows setting one default formatter. So I could either run Prettier or run ESLint on save. That was until it introduced "codeActionsOnSave" . This separated formatters and "Source" fixers like vscode-eslint
. This is how one would enable both prettier and eslint in VS Code:
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
But this would often lead to prettier being run after eslint, and eslint errors still being present as this defined no order for formatters and coder actions.
Since the March 2020 (v1.44) update, VS Code allows setting codeActionsOnSave
as an array. This allows setting the order of the code actions.
This extension uses the CodeActionProvider
api to implement a simple code action that runs 'Format Document' on the current file. This allows us to disable formatOnSave
and use it as a codeAction instead in a specific order with other extensions.
Source You can find the source on Github:
vscode-format-code-action