1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 4.25.4"/><meta data-react-helmet="true" name="description" content="Discover expert tutorials, articles and insights about Jetpack Compose. Learn how to build beautiful Android UIs with the latest in modern UI development."/><meta data-react-helmet="true" name="viewport" content="width=device-width, initial-scale=1.0"/><meta data-react-helmet="true" name="robots" content="index, follow"/><meta data-react-helmet="true" name="author" content="Vinay Gaba"/><meta data-react-helmet="true" name="theme-color" content="#4636f7"/><meta data-react-helmet="true" name="keywords" content="Jetpack Compose, Android Development, Kotlin, UI Development, Mobile Development, Jetpack Compose, Android Development"/><meta data-react-helmet="true" property="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" property="twitter:site" content="@vinaygaba"/><meta data-react-helmet="true" property="twitter:url" content="https://www.jetpackcompose.app/articles"/><meta data-react-helmet="true" property="twitter:title" content="Jetpack Compose Articles - Expert Tutorials and Guides"/><meta data-react-helmet="true" property="twitter:description" content="Discover expert tutorials, articles and insights about Jetpack Compose. Learn how to build beautiful Android UIs with the latest in modern UI development."/><meta data-react-helmet="true" property="twitter:image" content="https://www.jetpackcompose.app/articles_poster.png"/><meta data-react-helmet="true" property="og:title" content="Jetpack Compose Articles - Expert Tutorials and Guides"/><meta data-react-helmet="true" property="og:description" content="Discover expert tutorials, articles and insights about Jetpack Compose. Learn how to build beautiful Android UIs with the latest in modern UI development."/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:image" content="https://www.jetpackcompose.app/articles_poster.png"/><meta data-react-helmet="true" property="og:image:width" content="1200"/><meta data-react-helmet="true" property="og:image:height" content="630"/><meta data-react-helmet="true" property="og:url" content="https://www.jetpackcompose.app/articles"/><meta data-react-helmet="true" property="og:site_name" content="JetpackCompose.app"/><style data-href="/styles.0e900c9e3b3899b97847.css" data-identity="gatsby-global-css">.yt-lite{background-color:#000;background-position:50%;background-size:cover;contain:content;cursor:pointer;display:block;position:relative}.yt-lite.lyt-activated:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);background-position:top;background-repeat:repeat-x;content:"";display:block;height:60px;padding-bottom:50px;position:absolute;top:0;transition:all .2s cubic-bezier(0,0,.2,1);width:100%}.yt-lite:after{content:"";display:block;padding-bottom:var(--aspect-ratio)}.yt-lite>iframe{height:100%;left:0;position:absolute;top:0;width:100%}.yt-lite>.lty-playbtn{background-color:#212121;border-radius:14%;height:46px;opacity:.8;transition:all .2s cubic-bezier(0,0,.2,1);width:70px;z-index:1}.yt-lite:hover>.lty-playbtn{background-color:red;opacity:1}.yt-lite>.lty-playbtn:before{border-color:transparent transparent transparent #fff;border-style:solid;border-width:11px 0 11px 19px;content:""}.yt-lite>.lty-playbtn,.yt-lite>.lty-playbtn:before{left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.yt-lite.lyt-activated{cursor:unset}.yt-lite.lyt-activated:before,.yt-lite.lyt-activated>.lty-playbtn{opacity:0;pointer-events:none}body{text-rendering:optimizeLegibility;padding:0}@font-face{font-display:swap;font-family:Nunito Sans;font-style:normal;font-weight:100 200 400 500 600 700 900;
1src:url(/fonts/NunitoSans-VariableFont_YTLC,opsz,wdth,wght.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:100 200 400 500 600 700 900;src:url(/fonts/Inter-VariableFont_slnt,wght.woff2) format("woff2")}@font-face{font-display:swap;font-family:Playfair Display;font-style:normal;font-weight:400 500 700;src:url(/fonts/PlayfairDisplay-VariableFont_wght.woff2) format("woff2")} 2/* 3! tailwindcss v3.2.6 | MIT License | https://tailwindcss.com 4*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}
4[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:0px){.container{max-width:0}}@media (min-width:600px){.container{max-width:600px}}@media (min-width:960px){.container{max-width:960px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1920px){.container{max-width:1920px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol>
4li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-bottom:3em;margin-top:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){border-left-color:var(--tw-prose-quote-borders);border-left-width:.25rem;color:var(--tw-prose-quotes);font-style:italic;font-weight:500;margin-bottom:1.6em;margin-top:1.6em;padding-left:1em;quotes:"\201C""\201D""\2018""\2019"}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-size:2.25em;font-weight:800;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose :where(h1 strong):not(:where([class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.5em;font-weight:700;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose :where(h2 strong):not(:where([class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.25em;font-weight:600;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose :where(h3 strong):not(:where([class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose :where(h4 strong):not(:where([class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose] *)){background-color:var(--tw-prose-pre-bg);border-radius:.375rem;color:var(--tw-prose-pre-code);font-size:.875em;font-weight:400;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;overflow-x:auto;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose] *)){background-color:transparent;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0}.prose :where(pre code):not(:where([class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-bottom:2em;margin-top:2em;table-layout:auto;text-align:left;width:100%}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-color:var(--tw-prose-th-borders);border-bottom-width:1px}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em;vertical-align:bottom}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-color:var(--tw-prose-td-borders);border-bottom-width:1px}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-color:var(--tw-prose-th-borders);border-top-width:1px}.prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.prose{--tw-prose-body:#374151;
4--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(video):not(:where([class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(li):not(:where([class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}
4.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-bottom:1.0909091em;margin-top:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose] *)){margin-bottom:1.6666667em;margin-top:1.6666667em;padding-left:1em}.prose-lg :where(h1):not(:where([class~=not-prose] *)){font-size:2.6666667em;line-height:1;margin-bottom:.8333333em;margin-top:0}.prose-lg :where(h2):not(:where([class~=not-prose] *)){font-size:1.6666667em;line-height:1.3333333;margin-bottom:1.0666667em;margin-top:1.8666667em}.prose-lg :where(h3):not(:where([class~=not-prose] *)){font-size:1.3333333em;line-height:1.5;margin-bottom:.6666667em;margin-top:1.6666667em}.prose-lg :where(h4):not(:where([class~=not-prose] *)){line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.7777778em}.prose-lg :where(img):not(:where([class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(video):not(:where([class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(figure):not(:where([class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-lg :where(figcaption):not(:where([class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(code):not(:where([class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose] *)){border-radius:.375rem;font-size:.8888889em;line-height:1.75;margin-bottom:2em;margin-top:2em;padding:1em 1.5em}.prose-lg :where(ol):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose] *)){margin-bottom:.6666667em;margin-top:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(.prose-lg>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(hr):not(:where([class~=not-prose] *)){margin-bottom:3.1111111em;margin-top:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}
4.prose-lg :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose] *)){padding-bottom:.75em;padding-left:.75em;padding-right:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-slate{--tw-prose-body:#334155;--tw-prose-headings:#0f172a;--tw-prose-lead:#475569;--tw-prose-links:#0f172a;--tw-prose-bold:#0f172a;--tw-prose-counters:#64748b;--tw-prose-bullets:#cbd5e1;--tw-prose-hr:#e2e8f0;--tw-prose-quotes:#0f172a;--tw-prose-quote-borders:#e2e8f0;--tw-prose-captions:#64748b;--tw-prose-code:#0f172a;--tw-prose-pre-code:#e2e8f0;--tw-prose-pre-bg:#1e293b;--tw-prose-th-borders:#cbd5e1;--tw-prose-td-borders:#e2e8f0;--tw-prose-invert-body:#cbd5e1;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#94a3b8;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#94a3b8;--tw-prose-invert-bullets:#475569;--tw-prose-invert-hr:#334155;--tw-prose-invert-quotes:#f1f5f9;--tw-prose-invert-quote-borders:#334155;--tw-prose-invert-captions:#94a3b8;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#cbd5e1;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#475569;--tw-prose-invert-td-borders:#334155}.prose-indigo{--tw-prose-links:#4f46e5;--tw-prose-invert-links:#6366f1}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{bottom:0;left:0;right:0;top:0}.-bottom-12{bottom:-3rem}.-bottom-2{bottom:-.5rem}.-bottom-4{bottom:-1rem}.-left-12{left:-3rem}.-left-4{left:-1rem}.-right-8{right:-2rem}.-top-2{top:-.5rem}.-top-8{top:-2rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.right-0{right:0}.right-3{right:.75rem}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:.75rem}.z-10{z-index:10}.z-50{z-index:50}.m-0{margin:0}.m-2{margin:.5rem}.m-4{margin:1rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.-my-1{margin-bottom:-.25rem;margin-top:-.25rem}.-my-1\.5{margin-bottom:-.375rem;margin-top:-.375rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-12{margin-bottom:3rem;margin-top:3rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-8{margin-bottom:2rem;margin-top:2rem}.-mt-96{margin-top:-24rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:6rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-5{margin-right:1.25rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}
4.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[16\/10\]{aspect-ratio:16/10}.aspect-video{aspect-ratio:16/9}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-96{height:24rem}.h-\[160px\]{height:160px}.h-full{height:100%}.max-h-\[180px\]{max-height:180px}.min-h-\[70vh\]{min-height:70vh}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-40{width:10rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-\[160px\]{width:160px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[100px\]{min-width:100px}.min-w-\[120px\]{min-width:120px}.min-w-\[60px\]{min-width:60px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[200px\]{max-width:200px}.max-w-\[240px\]{max-width:240px}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.translate-x-1\/4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1\/4{--tw-translate-x:25%}.translate-y-1{--tw-translate-y:0.25rem}.translate-y-1,.translate-y-1\/4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/4{--tw-translate-y:25%}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-marquee{animation:marquee 40s linear infinite}@keyframes marquee2{0%{transform:translateX(100%)}to{transform:translateX(0)}}.animate-marquee2{animation:marquee2 70s linear infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.columns-1{-moz-columns:1;column-count:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(4rem*var(--tw-space-y-reverse));margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.self-end{align-self:flex-end}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}
4.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-r-md{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-4{border-bottom-width:4px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.\!border-\[\#222\]{--tw-border-opacity:1!important;border-color:rgb(34 34 34/var(--tw-border-opacity))!important}.border-accent{--tw-border-opacity:1;border-color:rgb(70 54 247/var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity))}.border-indigo-100{--tw-border-opacity:1;border-color:rgb(224 231 255/var(--tw-border-opacity))}.border-indigo-400{--tw-border-opacity:1;border-color:rgb(129 140 248/var(--tw-border-opacity))}.border-text{--tw-border-opacity:1;border-color:rgb(34 34 34/var(--tw-border-opacity))}.border-white\/30{border-color:hsla(0,0%,100%,.3)}.\!bg-slate-200{--tw-bg-opacity:1!important;background-color:rgb(226 232 240/var(--tw-bg-opacity))!important}.bg-\[\#03CF86\]{--tw-bg-opacity:1;background-color:rgb(3 207 134/var(--tw-bg-opacity))}.bg-\[\#0A66C2\]{--tw-bg-opacity:1;background-color:rgb(10 102 194/var(--tw-bg-opacity))}.bg-\[\#4636f7\]{--tw-bg-opacity:1;
4background-color:rgb(70 54 247/var(--tw-bg-opacity))}.bg-\[\#D7FF9E\]{--tw-bg-opacity:1;background-color:rgb(215 255 158/var(--tw-bg-opacity))}.bg-\[\#EEFfFE\]{--tw-bg-opacity:1;background-color:rgb(238 255 254/var(--tw-bg-opacity))}.bg-\[\#FFF\]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-\[\#ebf1fb\]{--tw-bg-opacity:1;background-color:rgb(235 241 251/var(--tw-bg-opacity))}.bg-accent{--tw-bg-opacity:1;background-color:rgb(70 54 247/var(--tw-bg-opacity))}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity))}.bg-black\/10{background-color:rgba(0,0,0,.1)}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity))}.bg-emerald-700{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity))}.bg-indigo-50{--tw-bg-opacity:1;background-color:rgb(238 242 255/var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity))}.bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.bg-text{--tw-bg-opacity:1;background-color:rgb(34 34 34/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-white\/20{background-color:hsla(0,0%,100%,.2)}.bg-white\/5{background-color:hsla(0,0%,100%,.05)}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-accent{--tw-gradient-from:#4636f7;--tw-gradient-to:rgba(70,54,247,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-amber-500{--tw-gradient-from:#f59e0b;--tw-gradient-to:rgba(245,158,11,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from:#3b82f6;--tw-gradient-to:rgba(59,130,246,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600{--tw-gradient-from:#2563eb;--tw-gradient-to:rgba(37,99,235,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-cyan-500{--tw-gradient-from:#06b6d4;--tw-gradient-to:rgba(6,182,212,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-emerald-500{--tw-gradient-from:#10b981;--tw-gradient-to:rgba(16,185,129,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-emerald-600{--tw-gradient-from:#059669;--tw-gradient-to:rgba(5,150,105,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-fuchsia-600{--tw-gradient-from:#c026d3;--tw-gradient-to:rgba(192,38,211,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from:#6366f1;--tw-gradient-to:rgba(99,102,241,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from:#4f46e5;--tw-gradient-to:rgba(79,70,229,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from:#f97316;--tw-gradient-to:rgba(249,115,22,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from:#ec4899;--tw-gradient-to:rgba(236,72,153,0);
4--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-600{--tw-gradient-from:#9333ea;--tw-gradient-to:rgba(147,51,234,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-rose-500{--tw-gradient-from:#f43f5e;--tw-gradient-to:rgba(244,63,94,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-teal-600{--tw-gradient-from:#0d9488;--tw-gradient-to:rgba(13,148,136,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-violet-500{--tw-gradient-from:#8b5cf6;--tw-gradient-to:rgba(139,92,246,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-violet-600{--tw-gradient-from:#7c3aed;--tw-gradient-to:rgba(124,58,237,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-purple-600{--tw-gradient-to:rgba(147,51,234,0);--tw-gradient-stops:var(--tw-gradient-from),#9333ea,var(--tw-gradient-to)}.to-accent-dark{--tw-gradient-to:#3428b5}.to-blue-500{--tw-gradient-to:#3b82f6}.to-blue-600{--tw-gradient-to:#2563eb}.to-cyan-500{--tw-gradient-to:#06b6d4}.to-cyan-600{--tw-gradient-to:#0891b2}.to-emerald-600{--tw-gradient-to:#059669}.to-green-600{--tw-gradient-to:#16a34a}.to-indigo-600{--tw-gradient-to:#4f46e5}.to-indigo-800{--tw-gradient-to:#3730a3}.to-orange-500{--tw-gradient-to:#f97316}.to-orange-600{--tw-gradient-to:#ea580c}.to-pink-600{--tw-gradient-to:#db2777}.to-purple-600{--tw-gradient-to:#9333ea}.to-red-500{--tw-gradient-to:#ef4444}.to-red-600{--tw-gradient-to:#dc2626}.to-rose-500{--tw-gradient-to:#f43f5e}.to-teal-600{--tw-gradient-to:#0d9488}.to-violet-600{--tw-gradient-to:#7c3aed}.to-white{--tw-gradient-to:#fff}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[2px\]{padding:2px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-\[0\.4rem\]{padding-bottom:.4rem;padding-top:.4rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-6{padding-right:1.5rem}.pt-1{padding-top:.25rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-justify{text-align:justify}.align-super{vertical-align:super}.font-inter{font-family:Inter,sans-serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-nunitoSans{font-family:Nunito Sans,sans-serif}.font-playfairDisplay{font-family:Playfair Display,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.\!text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity))!important}.text-\[\#060C3B\]{--tw-text-opacity:1;color:rgb(6 12 59/var(--tw-text-opacity))}.text-\[\#222\]{--tw-text-opacity:1;color:rgb(34 34 34/var(--tw-text-opacity))}.text-accent{--tw-text-opacity:1;
4color:rgb(70 54 247/var(--tw-text-opacity))}.text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.text-cyan-200{--tw-text-opacity:1;color:rgb(165 243 252/var(--tw-text-opacity))}.text-emerald-100{--tw-text-opacity:1;color:rgb(209 250 229/var(--tw-text-opacity))}.text-emerald-200{--tw-text-opacity:1;color:rgb(167 243 208/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity))}.text-indigo-200{--tw-text-opacity:1;color:rgb(199 210 254/var(--tw-text-opacity))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity))}.text-indigo-800{--tw-text-opacity:1;color:rgb(55 48 163/var(--tw-text-opacity))}.text-orange-200{--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity))}.text-pink-200{--tw-text-opacity:1;color:rgb(251 207 232/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.text-text{--tw-text-opacity:1;color:rgb(34 34 34/var(--tw-text-opacity))}.text-violet-200{--tw-text-opacity:1;color:rgb(221 214 254/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-white\/70{color:hsla(0,0%,100%,.7)}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-white\/90{color:hsla(0,0%,100%,.9)}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity))}.opacity-20{opacity:.2}.opacity-5{opacity:.05}.opacity-\[0\.15\]{opacity:.15}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);
4--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-\[0_-2px_10px_rgba\(0\2c 0\2c 0\2c 0\.1\)\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_-2px_10px_rgba\(0\2c 0\2c 0\2c 0\.1\)\]{--tw-shadow:0 -2px 10px rgba(0,0,0,.1);--tw-shadow-colored:0 -2px 10px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-sha
4dow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity))}.ring-white\/50{--tw-ring-color:hsla(0,0%,100%,.5)}.blur-2xl{--tw-blur:blur(40px)}.blur-2xl,.blur-xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-xl{--tw-blur:blur(24px)}.drop-shadow-lg{--tw-drop-shadow:drop-shadow(0 10px 8px rgba(0,0,0,.04)) drop-shadow(0 4px 3px rgba(0,0,0,.1))}.drop-shadow-lg,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-transform{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.marquee-container{max-width:100%;overflow:hidden;position:relative;width:100%}.marquee-content{animation:marquee 40s linear infinite;display:flex;white-space:nowrap;width:-moz-max-content;width:max-content}.marquee-content:hover{animation-play-state:paused}.marquee-item{align-items:center;display:flex;flex-shrink:0;justify-content:center;margin:0 24px}@media (max-width:1023px){.marquee-container{align-items:center;display:flex;height:80px}.marquee-content{animation:marquee 25s linear infinite}.marquee-item{align-items:center;display:flex;justify-content:center;margin:0 16px}}@media (max-width:767px){.marquee-container{height:70px}.marquee-content{animation:marquee 10s linear infinite}.marquee-item{margin:0 12px}}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.header-marquee-container{max-width:100%;overflow:hidden;position:relative;width:100%}.header-marquee-content{animation:header-marquee 90s linear infinite;display:flex;white-space:nowrap;width:-moz-max-content;width:max-content}.header-marquee-content:hover{animation-play-state:paused}.header-marquee-item{align-items:center;display:flex;flex-shrink:0;justify-content:center;margin:0 24px}@media (max-width:1023px){.header-marquee-container{align-items:center;display:flex;height:80px}.header-marquee-content{animation:header-marquee 80s linear infinite}.header-marquee-item{align-items:center;display:flex;justify-content:center;margin:0 16px}}@media (max-width:767px){.header-marquee-container{height:70px}.header-marquee-content{animation:header-marquee 70s linear infinite}.header-marquee-item{margin:0 12px}}
4@keyframes header-marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.sponsored-logo{animation:gentle-pulse 3s ease-in-out infinite;border-radius:8px;transition:transform .3s ease,box-shadow .3s ease}.sponsored-logo:hover{box-shadow:0 8px 25px rgba(59,130,246,.3);transform:scale(1.05)}@keyframes gentle-pulse{0%,to{box-shadow:0 0 0 0 rgba(245,73,39,.2)}50%{box-shadow:0 0 0 8px rgba(253,255,217,.8)}}.sponsored-container{position:relative}.firebender-container{display:inline-block;padding:20px;position:relative}.firebender-logo{border-radius:8px;position:relative;transition:transform .3s ease;z-index:10}.firebender-logo:hover{transform:scale(1.05)}.firebender-container:after,.firebender-container:before{animation:flame-dance 2s ease-in-out infinite alternate;background:linear-gradient(0deg,#ff4500 0,#ff6b35 30%,#ff8c42 60%,#ffa64d 80%,transparent);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;bottom:-5px;content:"";height:25px;position:absolute;width:8px;z-index:1}.firebender-container:before{animation-delay:0s;left:10%;transform-origin:bottom center}.firebender-container:after{animation-delay:.7s;height:20px;right:10%;transform-origin:bottom center}.flame-center,.flame-left,.flame-right{animation:flame-flicker 1.8s ease-in-out infinite;background:linear-gradient(0deg,#ff2400 0,#ff4500 20%,#ff6b35 50%,#ff8c42 70%,transparent);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;bottom:-3px;position:absolute;z-index:1}.flame-left{animation-delay:.3s;height:18px;left:25%;width:6px}.flame-right{animation-delay:1.1s;height:22px;right:25%;width:7px}.flame-center{animation-delay:1.6s;height:15px;left:50%;transform:translateX(-50%);width:5px}@keyframes flame-dance{0%{opacity:.8;transform:rotate(-2deg) scale(1)}25%{opacity:.9;transform:rotate(1deg) scale(1.1)}50%{opacity:.7;transform:rotate(-1deg) scale(.95)}75%{opacity:.85;transform:rotate(2deg) scale(1.05)}to{opacity:.9;transform:rotate(-1deg) scale(1.02)}}@keyframes flame-flicker{0%,to{opacity:.8;transform:scaleY(1) rotate(0deg)}20%{opacity:.9;transform:scaleY(1.2) rotate(-1deg)}40%{opacity:.7;transform:scaleY(.8) rotate(1deg)}60%{opacity:.85;transform:scaleY(1.1) rotate(-2deg)}80%{opacity:.75;transform:scaleY(.9) rotate(1deg)}}.firebender-container:after{box-shadow:0 0 10px rgba(255,69,0,.3)}.readme-content{color:#374151;font-size:.95rem;line-height:1.7}.readme-content h1{border-bottom:1px solid #e5e7eb;color:#111827;font-size:1.75rem;font-weight:700;margin-bottom:1rem;margin-top:1.5rem;padding-bottom:.5rem}.readme-content h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin-bottom:.75rem;margin-top:1.5rem}.readme-content h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin-bottom:.5rem;margin-top:1.25rem}.readme-content h4,.readme-content h5,.readme-content h6{color:#374151;font-size:1.1rem;font-weight:600;margin-bottom:.5rem;margin-top:1rem}.readme-content p{margin-bottom:1rem}.readme-content a{color:#4f46e5;text-decoration:none}.readme-content a:hover{text-decoration:underline}.readme-content code{background-color:#f3f4f6;border-radius:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875em;padding:.125rem .375rem}.readme-content pre{background-color:#1f2937;border-radius:.5rem;color:#f9fafb;margin-bottom:1rem;overflow-x:auto;padding:1rem}.readme-content pre code{background-color:transparent;color:inherit;padding:0}.readme-content ol,.readme-content ul{margin-bottom:1rem;padding-left:1.5rem}.readme-content ul{list-style-type:disc}.readme-content ol{list-style-type:decimal}.readme-content li{margin-bottom:.25rem}.readme-content li>ol,.readme-content li>ul{margin-bottom:0;margin-top:.25rem}.readme-content blockquote{border-left:4px solid #4f46e5;color:#6b7280;font-style:italic;margin-bottom:1rem;margin-left:0;padding-left:1rem}.readme-content img{border-radius:.5rem;height:auto;margin:1rem 0;max-width:100%}.readme-content table{border-collapse:collapse;font-size:.875rem;margin-bottom:1rem;width:100%}.readme-content td,.readme-content th{border:1px solid #e5e7eb;padding:.5rem .75rem;text-align:left}.readme-content th{font-weight:600}.readme-content th,.readme-content tr:nth-child(2n){background-color:#f9fafb}.readme-content hr{border:none;border-top:1px solid #e5e7eb;margin:1.5rem 0}.readme-content>h1:first-child{display:none}.readme-content img[src$=".svg"],.readme-content img[src*="contrib.rocks"],.readme-content img[src*="github.com"][src*=actions],.readme-content img[src*="github.com"][src*=workflows],.readme-content img[src*="img.shields"],.readme-content img[src*="shields.io"],.readme-content img[src*=android-arsenal],.readme-content img[src*=badge],.readme-content img[src*=circleci],.readme-content img[src*=codecov],.readme-content img[src*=coveralls],.readme-content img[src*=jitpack],.readme-content img[src*=kotzilla],.readme-content img[src*=maven-central],.readme-content img[src*=travis-ci]{border-radius:.25rem!important;display:inline-block!important;height:24px!important;margin:.25rem!important;max-width:none!important;vertical-align:middle!important;width:auto!important}.readme-content img[src*="contrib.rocks"]{height:40px!important}.readme-content>
4p:first-child img:not([src*=badge]):not([src*=shields]):not([src$=".svg"]),.readme-content>p:first-of-type img:not([src*=badge]):not([src*=shields]):not([src$=".svg"]){display:block;margin:0 auto 1rem;max-height:120px;width:auto}.hover\:-translate-y-0:hover{--tw-translate-y:-0px}.hover\:-translate-y-0:hover,.hover\:-translate-y-0\.5:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-translate-y-1:hover,.hover\:-translate-y-2:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-2:hover{--tw-translate-y:-0.5rem}.hover\:translate-y-\[-4px\]:hover{--tw-translate-y:-4px}.hover\:scale-\[1\.02\]:hover,.hover\:translate-y-\[-4px\]:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-gray-400:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.hover\:border-indigo-200:hover{--tw-border-opacity:1;border-color:rgb(199 210 254/var(--tw-border-opacity))}.hover\:border-slate-300:hover{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity))}.hover\:bg-\[\#004182\]:hover{--tw-bg-opacity:1;background-color:rgb(0 65 130/var(--tw-bg-opacity))}.hover\:bg-\[\#3428b5\]:hover,.hover\:bg-accent-dark:hover{--tw-bg-opacity:1;background-color:rgb(52 40 181/var(--tw-bg-opacity))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity))}.hover\:bg-emerald-700:hover{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity))}.hover\:bg-sky-600:hover{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.hover\:bg-slate-900:hover{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}.hover\:bg-white\/30:hover{background-color:hsla(0,0%,100%,.3)}.hover\:text-accent:hover{--tw-text-opacity:1;
4color:rgb(70 54 247/var(--tw-text-opacity))}.hover\:text-accent-dark:hover{--tw-text-opacity:1;color:rgb(52 40 181/var(--tw-text-opacity))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.hover\:text-indigo-700:hover{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity))}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow:hover{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);
4--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:shadow-md:hover,.hover\:shadow-xl:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.focus\:border-accent:focus{--tw-border-opacity:1;border-color:rgb(70 54 247/var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity))}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
4dow,0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset:inset}.focus\:ring-accent:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(70 54 247/var(--tw-ring-opacity))}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity))}.focus\:ring-white:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-emerald-600:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(5 150 105/var(--tw-ring-opacity))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:translate-x-0{--tw-translate-x:0px}.group:hover .group-hover\:translate-x-0,.group:hover .group-hover\:translate-x-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x:0.125rem}.group:hover .group-hover\:text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity))}.group:hover .group-hover\:underline{text-decoration-line:underline}.prose-pre\:\!my-0 :is(:where(pre):not(:where([class~=not-prose] *))){margin-bottom:0!important;margin-top:0!important}.prose-pre\:rounded-2xl :is(:where(pre):not(:where([class~=not-prose] *))){border-radius:1rem}@media (min-width:0px){.xs\:col-span-10{grid-column:span 10/span 10}.xs\:col-span-11{grid-column:span 11/span 11}.xs\:col-span-9{grid-column:span 9/span 9}}@media (min-width:600px){.sm\:mb-0{margin-bottom:0}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mb-8{margin-bottom:2rem}.sm\:h-5{height:1.25rem}.sm\:w-5{width:1.25rem}.sm\:w-auto{width:auto}.sm\:flex-1{flex:1 1 0%}.sm\:columns-1{-moz-columns:1;column-count:1}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-\[auto\2c max-content\]{grid-template-columns:auto max-content}.sm\:flex-row{flex-direction:row}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.sm\:rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.sm\:rounded-l-none{border-bottom-left-radius:0;border-top-left-radius:0}.sm\:rounded-r-md{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.sm\:rounded-r-none{border-bottom-right-radius:0;border-top-right-radius:0}.sm\:p-12{padding:3rem}.sm\:p-8{padding:2rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:960px){.md\:mb-0{margin-bottom:0}.md\:mr-8{margin-right:2rem}.md\:mt-0{margin-top:0}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-\[200px\]{height:200px}.md\:w-3\/5{width:60%}.md\:w-5\/6{width:83.333333%}.md\:w-\[200px\]{width:200px}.md\:columns-2{-moz-columns:2;column-count:2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.md\:p-10{padding:2.5rem}.md\:py-16{padding-bottom:4rem;padding-top:4rem}.md\:py-3{padding-bottom:.75rem;padding-top:.75rem}.md\:py-4{padding-bottom:1rem;padding-top:1rem}.md\:text-left{text-align:left}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1280px){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:my-3{margin-top:.75rem}.lg\:mb-3,.lg\:my-3{margin-bottom:.75rem}.lg\:mt-1{margin-top:.25rem}.lg\:mt-2{margin-top:.5rem}.lg\:mt-3{margin-top:.75rem}.lg\:mt-5{margin-top:1.25rem}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-12{height:3rem}.lg\:w-1\/2{width:50%}.lg\:w-2\/3{width:66.666667%}.lg\:w-3\/4{width:75%}.lg\:w-3\/5{width:60%}.lg\:w-4\/5{width:80%}.lg\:columns-3{-moz-columns:3;column-count:3}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.lg\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.lg\:p-10{padding:2.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-12{padding-bottom:3rem;padding-top:3rem}.lg\:py-20{padding-bottom:5rem;padding-top:5rem}.lg\:py-24{padding-bottom:6rem;padding-top:6rem}.lg\:py-3{padding-bottom:.75rem;padding-top:.75rem}.lg\:py-8{padding-bottom:2rem;padding-top:2rem}.lg\:pt-0{padding-top:0}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-base{font-size:1rem;line-height:1.5rem}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}}.articlePostContainer{margin-bottom:64px;padding:12px}.articlePostContainer h2{text-rendering:optimizeLegibility;font-size:32px!important;font-weight:600!important;margin-bottom:16px!important;margin-top:64px!important}.articlePostContainer h2,.articlePostContainer h3{color:#222!important;font-family:Nunito Sans!important}.articlePostContainer h3{font-size:25px!important;font-weight:500!important;margin-bottom:12px!important;margin-top:32px!important}.articlePostContainer p{margin-top:32px}.articlePostContainer p,.blog-excerpt{color:#222;font-family:Nunito Sans;font-size:20px;font-weight:400;margin-bottom:32px}.articlePostContainer ol,.articlePostContainer ul{-webkit-padding-start:40px;list-style:disc;padding-inline-start:40px}.articlePostContainer li{font-size:20px;margin-bottom:16px}.articlePostContainer li,blockquote p{color:#222;font-family:Nunito Sans;font-weight:400}blockquote p{background-color:#eafff3;border-left:6px solid #3ddc84;border-radius:8px;font-size:18px;margin-bottom:32px;padding:16px}.inline{background-color:#fafad2;font-size:20px}.postHeaderContainer{margin-bottom:96px;margin-top:64px;padding-left:16px;padding-right:16px;text-align:center}.postHeader{color:#222;font-family:Nunito Sans;font-size:48px;font-weight:600}.postDescription{color:#374151;font-family:Nunito Sans;font-size:24px;font-weight:400;margin-top:8px}.postSubheader{color:#444;font-family:Inter;font-size:16px;font-weight:500}.postHeaderTwitterFollowButton,.postSubheader{align-items:center;display:flex;justify-content:center;margin-top:8px}.postHeaderTwitterFollowButton{min-height:32px}.postSubheader a{color:#4636f7;margin-left:8px;margin-right:6px;text-decoration:none}.articlePostContainer a svg{display:inline-block}.authorName{background-color:#fafad2;margin-left:8px;margin-right:6px}.heroImage{background-size:contain;border-radius:12px;display:block;margin:0 auto 32px;max-height:60vh;-o-object-fit:cover;object-fit:cover;width:100%}p img{width:80%}.articleCustomImage,p img{margin-left:auto;margin-right:auto;margin-top:32px}.articleCustomImage,.emphasis,p img{align-items:center;display:block;justify-self:center}.emphasis{margin:20px auto 32px;text-align:center}.articlePostContainer p:has(img)+p>em:only-child,img+em{align-items:center;display:block;justify-self:center;margin:20px auto 32px;text-align:center}video{margin-bottom:32px}.articlePostContainer a{color:#4636f7;text-decoration:none}.footer{bottom:"0px";height:11.5rem;margin-bottom:"0px";margin-top:"2%";width:100%}.language-text{background-color:rgba(255,229,100,.2)!important;color:#222!important;font-family:Nunito Sans!important;font-size:20px;font-weight:600!important}.early-access-message{align-items:center;color:#222;display:flex;font-family:Nunito Sans;font-size:25px;font-weight:700;justify-content:center;padding:32px;text-align:center}.blog-post-overlay{background:linear-gradient(hsla(0,0%,100%,0),hsla(0,0%,100%,.5),#fff);height:245px;margin-top:-265px;position:relative}.twitter-tweet-rendered{align-items:center;display:flex!important;justify-content:center}.header-link{margin-left:16px;visibility:hidden}h2:hover .header-link{color:#639;margin-left:16px;visibility:visible}.articlePostContainer table{margin-bottom:32px;margin-left:auto;margin-right:auto}.articlePostContainer thead{background-color:#4636f7;color:#fff;font-family:Nunito Sans;font-size:20px;font-weight:600!important}.articlePostContainer tbody{color:#222;font-family:Nunito Sans;font-size:20px;font-weight:400}.articlePostContainer table td,.articlePostContainer table th{padding:16px}strong{font-weight:800}.divider{margin-bottom:32px!important;margin-top:32px!important;width:100%}.share a{background-image:url(/articles/twitter-icon.svg);background-repeat:no-repeat;background-size:22px 22px;color:#222;display:inline-block;font-family:Inter;font-size:16px;font-weight:600;line-height:22px;padding-left:30px;text-decoration:underline}.snippet-container .articlePostContainer{margin-bottom:16px!important;padding:12px!important}.snippet-container .articlePostContainer p{margin-bottom:16px!important;margin-top:16px!important}.snippet-container .articlePostContainer pre{margin-bottom:8px!important;margin-top:8px!important}.adCta{background-color:#3ddc84;position:relative;top:50%}.topLevelContainer{display:flex;justify-content:space-between}.sideColumn{flex:1}.mainColumn{flex-basis:content;padding-left:0!important;padding-right:0!important}.cta-button{border-radius:16px;bottom:10%;max-width:300px;position:fixed}.cta-button-hide,.subscription-only-hidden{display:none}.gist{color:#333; 5 /*! 6 * GitHub Light v0.4.1 7 * Copyright (c) 2012 - 2017 GitHub, Inc. 8 * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE) 9 */direction:ltr;font-size:16px;text-align:left}.gist .markdown-body{word-wrap:break-word;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:16px;line-height:1.5}.gist .markdown-body:before{content:"";display:table}.gist .markdown-body:after{clear:both;content:"";display:table}.gist .markdown-body>:first-child{margin-top:0!important}.gist .markdown-body>:last-child{margin-bottom:0!important}.gist .markdown-body a:not([href]){color:inherit;text-decoration:none}.gist .markdown-body .absent{color:#cb2431}.gist .markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.gist .markdown-body .anchor:focus{outline:none}.gist .markdown-body blockquote,.gist .markdown-body dl,.gist .markdown-body ol,.gist .markdown-body p,.gist .markdown-body pre,.gist .markdown-body table,.g
9ist .markdown-body ul{margin-bottom:16px;margin-top:0}.gist .markdown-body hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}.gist .markdown-body blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}.gist .markdown-body blockquote>:first-child{margin-top:0}.gist .markdown-body blockquote>:last-child{margin-bottom:0}.gist .markdown-body kbd{background-color:#fafbfc;border:1px solid #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5;color:#444d56;display:inline-block;font-size:11px;line-height:10px;padding:3px 5px;vertical-align:middle}.gist .markdown-body h1,.gist .markdown-body h2,.gist .markdown-body h3,.gist .markdown-body h4,.gist .markdown-body h5,.gist .markdown-body h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}.gist .markdown-body h1 .octicon-link,.gist .markdown-body h2 .octicon-link,.gist .markdown-body h3 .octicon-link,.gist .markdown-body h4 .octicon-link,.gist .markdown-body h5 .octicon-link,.gist .markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.gist .markdown-body h1:hover .anchor,.gist .markdown-body h2:hover .anchor,.gist .markdown-body h3:hover .anchor,.gist .markdown-body h4:hover .anchor,.gist .markdown-body h5:hover .anchor,.gist .markdown-body h6:hover .anchor{text-decoration:none}.gist .markdown-body h1:hover .anchor .octicon-link,.gist .markdown-body h2:hover .anchor .octicon-link,.gist .markdown-body h3:hover .anchor .octicon-link,.gist .markdown-body h4:hover .anchor .octicon-link,.gist .markdown-body h5:hover .anchor .octicon-link,.gist .markdown-body h6:hover .anchor .octicon-link{visibility:visible}.gist .markdown-body h1 code,.gist .markdown-body h1 tt,.gist .markdown-body h2 code,.gist .markdown-body h2 tt,.gist .markdown-body h3 code,.gist .markdown-body h3 tt,.gist .markdown-body h4 code,.gist .markdown-body h4 tt,.gist .markdown-body h5 code,.gist .markdown-body h5 tt,.gist .markdown-body h6 code,.gist .markdown-body h6 tt{font-size:inherit}.gist .markdown-body h1{font-size:2em}.gist .markdown-body h1,.gist .markdown-body h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}.gist .markdown-body h2{font-size:1.5em}.gist .markdown-body h3{font-size:1.25em}.gist .markdown-body h4{font-size:1em}.gist .markdown-body h5{font-size:.875em}.gist .markdown-body h6{color:#6a737d;font-size:.85em}.gist .markdown-body ol,.gist .markdown-body ul{padding-left:2em}.gist .markdown-body ol.no-list,.gist .markdown-body ul.no-list{list-style-type:none;padding:0}
9.gist .markdown-body ol ol,.gist .markdown-body ol ul,.gist .markdown-body ul ol,.gist .markdown-body ul ul{margin-bottom:0;margin-top:0}.gist .markdown-body li{word-wrap:break-all}.gist .markdown-body li>p{margin-top:16px}.gist .markdown-body li+li{margin-top:.25em}.gist .markdown-body dl{padding:0}.gist .markdown-body dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}.gist .markdown-body dl dd{margin-bottom:16px;padding:0 16px}.gist .markdown-body table{display:block;overflow:auto;width:100%}.gist .markdown-body table th{font-weight:600}.gist .markdown-body table td,.gist .markdown-body table th{border:1px solid #dfe2e5;padding:6px 13px}.gist .markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.gist .markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.gist .markdown-body table img{background-color:transparent}.gist .markdown-body img{background-color:#fff;box-sizing:content-box;max-width:100%}.gist .markdown-body img[align=right]{padding-left:20px}.gist .markdown-body img[align=left]{padding-right:20px}.gist .markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.gist .markdown-body span.frame{display:block;overflow:hidden}.gist .markdown-body span.frame>span{border:1px solid #dfe2e5;display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.gist .markdown-body span.frame span img{display:block;float:left}.gist .markdown-body span.frame span span{clear:both;color:#24292e;display:block;padding:5px 0 0}.gist .markdown-body span.align-center{clear:both;display:block;overflow:hidden}.gist .markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.gist .markdown-body span.align-center span img{margin:0 auto;text-align:center}.gist .markdown-body span.align-right{clear:both;display:block;overflow:hidden}.gist .markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.gist .markdown-body span.align-right span img{margin:0;text-align:right}.gist .markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.gist .markdown-body span.float-left span{margin:13px 0 0}.gist .markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.gist .markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.gist .markdown-body code,.gist .markdown-body tt{background-color:rgba(27,31,35,.05);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}.gist .markdown-body code br,.gist .markdown-body tt br{display:none}.gist .markdown-body del code{text-decoration:inherit}.gist .markdown-body pre{word-wrap:normal}.gist .markdown-body pre>code{background:transparent;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}.gist .markdown-body .highlight{margin-bottom:16px}.gist .markdown-body .highlight pre{margin-bottom:0;word-break:normal}.gist .markdown-body .highlight pre,.gist .markdown-body pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}.gist .markdown-body pre code,.gist .markdown-body pre tt{word-wrap:normal;background-color:transparent;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}.gist .markdown-body .csv-data td,.gist .markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.gist .markdown-body .csv-data .blob-num{background:#fff;border:0;padding:10px 8px 9px;text-align:right}.gist .markdown-body .csv-data tr{border-top:0}.gist .markdown-body .csv-data th{background:#f6f8fa;border-top:0;font-weight:600}.gist .pl-c{color:#6a737d}.gist .pl-c1,.gist .pl-s .pl-v{color:#005cc5}.gist .pl-e,.gist .pl-en{color:#6f42c1}.gist .pl-s .pl-s1,.gist .pl-smi{color:#24292e}.gist .pl-ent{color:#22863a}.gist .pl-k{color:#d73a49}.gist .pl-pds,.gist .pl-s,.gist .pl-s .pl-pse .pl-s1,.gist .pl-sr,.gist .pl-sr .pl-cce,.gist .pl-sr .pl-sra,.gist .pl-sr .pl-sre{color:#032f62}
9.gist .pl-smw,.gist .pl-v{color:#e36209}.gist .pl-bu{color:#b31d28}.gist .pl-ii{background-color:#b31d28;color:#fafbfc}.gist .pl-c2{background-color:#d73a49;color:#fafbfc}.gist .pl-c2:before{content:"^M"}.gist .pl-sr .pl-cce{color:#22863a;font-weight:700}.gist .pl-ml{color:#735c0f}.gist .pl-mh,.gist .pl-mh .pl-en,.gist .pl-ms{color:#005cc5;font-weight:700}.gist .pl-mi{color:#24292e;font-style:italic}.gist .pl-mb{color:#24292e;font-weight:700}.gist .pl-md{background-color:#ffeef0;color:#b31d28}.gist .pl-mi1{background-color:#f0fff4;color:#22863a}.gist .pl-mc{background-color:#ffebda;color:#e36209}.gist .pl-mi2{background-color:#005cc5;color:#f6f8fa}.gist .pl-mdr{color:#6f42c1;font-weight:700}.gist .pl-ba{color:#586069}.gist .pl-sg{color:#959da5}.gist .pl-corl{color:#032f62;text-decoration:underline}.gist .breadcrumb{color:#586069;font-size:18px;margin-bottom:10px}.gist .breadcrumb .separator:after,.gist .breadcrumb .separator:before{content:" "}.gist .breadcrumb strong.final-path{color:#24292e}.gist .breadcrumb .zeroclipboard-button{display:inline-block;margin-left:5px}.gist .breadcrumb .repo-root{font-weight:600}.gist .breadcrumb .octicon{vertical-align:-2px}.gist .editor-code-of-conduct-template,.gist .editor-flow-template,.gist .editor-gitignore-template,.gist .editor-license-template{display:block;float:right;font-size:14px;position:relative;top:3px}.gist .editor-abort{display:inline;font-size:14px}.gist .blob-interaction-bar{background-color:#f2f2f2;border-bottom:1px solid #e5e5e5;position:relative}.gist .blob-interaction-bar:before{content:"";display:table}.gist .blob-interaction-bar:after{clear:both;content:"";display:table}.gist .blob-interaction-bar .octicon-search{color:#586069;font-size:12px;left:10px;position:absolute;top:10px}.gist .blob-filter{border:0;border-radius:0;font-size:12px;outline:none;padding:4px 20px 5px 30px;width:100%}.gist .blob-filter:focus{outline:none}.gist .html-blob{margin-bottom:15px}.gist .TagsearchPopover{max-width:600px;width:inherit}.gist .TagsearchPopover-content{max-height:200px}.gist .TagsearchPopover-list .TagsearchPopover-list-item:hover{background-color:#f6f8fa}.gist .TagsearchPopover-list .TagsearchPopover-list-item .TagsearchPopover-item:hover{text-decoration:none}.gist .TagsearchPopover-list .blob-code-inner{white-space:pre-wrap}.gist .license-summary-octicon{color:#959da5}.gist .rule-type-permissions{color:#28a745}.gist .rule-type-conditions{color:#0366d6}.gist .rule-type-limitations{color:#d73a49}.gist .linejump .linejump-input{background-color:#fafbfc;width:340px}.gist .linejump .btn,.gist .linejump .linejump-input{font-size:16px;padding:10px 15px}.gist .blob-wrapper{border-bottom-left-radius:3px;border-bottom-right-radius:3px;overflow-x:auto;overflow-y:hidden}.gist .page-blob.height-full .blob-wrapper{overflow-y:auto}.gist .page-edit-blob.height-full .CodeMirror{height:300px}.gist .page-edit-blob.height-full .CodeMirror,.gist .page-edit-blob.height-full .CodeMirror-scroll{display:flex;flex:1 1 auto;flex-direction:column}.gist .blob-wrapper-embedded{max-height:240px;overflow-y:auto}.gist .diff-table{border-collapse:separate;width:100%}.gist .diff-table .line-comments{border-top:1px solid #e1e4e8;padding:10px;vertical-align:top}.gist .diff-table .line-comments:first-child+.empty-cell{border-left-width:1px}.gist .diff-table tr:not(:last-child) .line-comments{border-bottom:1px solid #e1e4e8;border-top:1px solid #e1e4e8}.gist .blob-num{color:rgba(27,31,35,.3);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;line-height:20px;min-width:50px;padding-left:10px;padding-right:10px;text-align:right;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;width:1%}.gist .blob-num:hover{color:rgba(27,31,35,.6)}.gist .blob-num:before{content:attr(data-line-number)}.gist .blob-num.non-expandable{cursor:default}.gist .blob-num.non-expandable:hover{color:rgba(27,31,35,.3)}.gist .blob-code{line-height:20px;padding-left:10px;padding-right:10px;position:relative;vertical-align:top}.gist .blob-code-inner{word-wrap:normal;color:#24292e;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;overflow:visible;white-space:pre}.gist .blob-code-inner .x-first{border-bottom-left-radius:.2em;border-top-left-radius:.2em}.gist .blob-code-inner .x-last{border-bottom-right-radius:.2em;border-top-right-radius:.2em}.gist .blob-code-inner .highlighted,.gist .blob-code-inner.highlighted{background-color:#fffbdd}.gist .blob-code-marker:before{content:attr(data-code-marker)}.gist .blob-code-marker-cell{-moz-user-select:none;-webkit-user-select:none;user-select:none;width:1em}.gist .blob-code-marker-cell:before{content:attr(data-code-marker);display:block;height:0;width:0}
9.gist .blob-code-marker-addition:before{content:"+ "}.gist .blob-code-marker-deletion:before{content:"- "}.gist .blob-code-marker-context:before{content:" "}.gist .soft-wrap .diff-table{table-layout:fixed}.gist .soft-wrap .blob-code{padding-left:18px;text-indent:-7px}.gist .soft-wrap .blob-code-inner{word-wrap:break-word;white-space:pre-wrap}.gist .soft-wrap .no-nl-marker{display:none}.gist .soft-wrap .add-line-comment{margin-left:-28px}.gist .blob-code-hunk,.gist .blob-num-expandable,.gist .blob-num-hunk{color:rgba(27,31,35,.5);vertical-align:middle}.gist .blob-num-expandable,.gist .blob-num-hunk{background-color:#dbedff}.gist .blob-code-hunk{background-color:#f1f8ff;border-width:1px 0;padding-bottom:4px;padding-top:4px}.gist .blob-expanded .blob-code,.gist .blob-expanded .blob-num{background-color:#fafbfc}.gist .blob-expanded .blob-num-hunk,.gist .blob-expanded+tr:not(.blob-expanded) .blob-code,.gist .blob-expanded+tr:not(.blob-expanded) .blob-num,.gist tr:not(.blob-expanded)+.blob-expanded .blob-code,.gist tr:not(.blob-expanded)+.blob-expanded .blob-num{border-top:1px solid #eaecef}.gist .blob-num-expandable{font-size:12px;padding:0;text-align:center}.gist .blob-num-expandable .diff-expander{color:#586069;cursor:pointer;display:block;height:auto;margin-right:-1px;padding:4px 11px 4px 10px;width:auto}.gist .blob-num-expandable .diff-expander .octicon{vertical-align:top}.gist .blob-num-expandable .directional-expander{color:#586069;cursor:pointer;display:block;height:auto;margin-right:-1px;width:auto}.gist .blob-num-expandable .single-expander{padding-bottom:4px;padding-top:4px}.gist .blob-num-expandable .diff-expander:hover,.gist .blob-num-expandable .directional-expander:hover{background-color:#0366d6;border-color:#0366d6;color:#fff;text-shadow:none}.gist .blob-code-addition{background-color:#e6ffed}.gist .blob-code-addition .x{background-color:#acf2bd;color:#24292e}.gist .blob-num-addition{background-color:#cdffd8;border-color:#bef5cb}.gist .blob-code-deletion{background-color:#ffeef0}.gist .blob-code-deletion .x{background-color:#fdb8c0;color:#24292e}.gist .blob-num-deletion{background-color:#ffdce0;border-color:#fdaeb7}.gist .selected-line.blob-code{background-color:#fffbdd}.gist .selected-line.blob-code .x{background-color:transparent}.gist .selected-line.blob-num{background-color:#fff5b1;border-color:#ffea7f}.gist .add-line-comment{background-color:#0366d6;background-image:linear-gradient(#0372ef,#0366d6);border-radius:3px;box-shadow:0 1px 4px rgba(27,31,35,.15);color:#fff;cursor:pointer;float:left;height:22px;line-height:21px;margin:-2px -10px -2px -20px;opacity:0;position:relative;text-align:center;text-indent:0;transform:scale(.8);transition:transform .1s ease-in-out;width:22px;z-index:5}.gist .add-line-comment:hover{transform:scale(1)}.gist .add-line-comment:focus,.is-hovered .gist .add-line-comment{opacity:1}.gist .add-line-comment .octicon{pointer-events:none;vertical-align:text-top}.gist .add-line-comment.octicon-check{background:#333;opacity:1}.gist .inline-comment-form{border:1px solid #dfe2e5;border-radius:3px}.gist .inline-review-comment{margin-bottom:10px!important;margin-top:0!important}.gist .inline-review-comment .gc:first-child+tr .blob-code,.gist .inline-review-comment .gc:first-child+tr .blob-num{padding-top:5px}.gist .inline-review-comment tr:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.gist .inline-review-comment tr:last-child .blob-code,.gist .inline-review-comment tr:last-child .blob-num{padding-bottom:8px}.gist .inline-review-comment tr:last-child .blob-code:first-child,.gist .inline-review-comment tr:last-child .blob-num:first-child{border-bottom-left-radius:2px}.gist .inline-review-comment tr:last-child .blob-code:last-child,.gist .inline-review-comment tr:last-child .blob-num:last-child{border-bottom-right-radius:2px}.gist .timeline-inline-comments{table-layout:fixed;width:100%}.gist .show-inline-notes .inline-comments,.gist .timeline-inline-comments .inline-comments{display:table-row}.gist .inline-comments,.gist .inline-comments.is-collapsed{display:none}.gist .inline-comments .line-comments.is-collapsed{visibility:hidden}.gist .inline-comments .line-comments+.blob-num{border-left-width:1px}.gist .inline-comments .timeline-comment{margin-bottom:10px}.gist .comment-holder,.gist .inline-comments .inline-comment-form,.gist .inline-comments .inline-comment-form-container{max-width:780px}.gist .empty-cell+.line-comments,.gist .line-comments+.line-comments{border-left:1px solid #eaecef}.gist .inline-comment-form-container .inline-comment-form,.gist .inline-comment-form-container.open .inline-comment-form-actions{display:none}.gist .inline-comment-form-container .inline-comment-form-actions,.gist .inline-comment-form-container.open .inline-comment-form{display:block}.gist body.full-width .container,.gist body.full-width .container-lg,.gist body.split-diff .container,.gist body.split-diff .container-lg{max-width:none;padding-left:20px;padding-right:20px;width:100%}.gist body.full-width .repository-content,.gist body.split-diff .repository-content{width:100%}.gist body.full-width .new-pr-form,.gist body.split-diff .new-pr-form{max-width:980px}.gist body.full-width .new-pr-form .discussion-sidebar,.gist body.split-diff .new-pr-form .discussion-sidebar{width:200
9px}.gist .file-diff-split{table-layout:fixed}.gist .file-diff-split .blob-code+.blob-num{border-left:1px solid #f6f8fa}.gist .file-diff-split .blob-code-inner{word-wrap:break-word;white-space:pre-wrap}.gist .file-diff-split .empty-cell{background-color:#fafbfc;border-right-color:#eaecef;cursor:default}.gist .submodule-diff-stats .octicon-diff-removed{color:#cb2431}.gist .submodule-diff-stats .octicon-diff-renamed{color:#677a85}.gist .submodule-diff-stats .octicon-diff-modified{color:#d0b44c}.gist .submodule-diff-stats .octicon-diff-added{color:#28a745}.gist .BlobToolbar{left:-17px}.gist .BlobToolbar-dropdown{margin-left:-2px}.gist .code-navigation-banner{background:linear-gradient(180deg,rgba(242,248,254,0),rgba(242,248,254,.47))}.gist .code-navigation-banner .code-navigation-banner-illo{background-image:url(/images/modules/blob/code-navigation-banner-illo.svg);background-position:50%;background-repeat:no-repeat}.gist .pl-token.active,.gist .pl-token:hover{background:#ffea7f;cursor:pointer}.gist .task-list-item{list-style-type:none}.gist .task-list-item label{font-weight:400}.gist .task-list-item.enabled label{cursor:pointer}.gist .task-list-item+.task-list-item{margin-top:3px}.gist .task-list-item .handle{display:none}.gist .task-list-item-checkbox{margin:0 .2em .25em -1.6em;vertical-align:middle}.gist .reorderable-task-lists .markdown-body .contains-task-list{padding:0}.gist .reorderable-task-lists .markdown-body li:not(.task-list-item){margin-left:26px}.gist .reorderable-task-lists .markdown-body ol:not(.contains-task-list) li,.gist .reorderable-task-lists .markdown-body ul:not(.contains-task-list) li{margin-left:0}.gist .reorderable-task-lists .markdown-body li p{margin-top:0}.gist .reorderable-task-lists .markdown-body .task-list-item{border:1px solid transparent;margin-left:-15px;margin-right:-15px;padding-left:42px;padding-right:15px}.gist .reorderable-task-lists .markdown-body .task-list-item+.task-list-item{margin-top:0}.gist .reorderable-task-lists .markdown-body .task-list-item .contains-task-list{padding-top:4px}.gist .reorderable-task-lists .markdown-body .task-list-item .handle{display:block;float:left;margin-left:-43px;opacity:0;padding:2px 0 0 2px;width:20px}.gist .reorderable-task-lists .markdown-body .task-list-item .drag-handle{fill:#333}.gist .reorderable-task-lists .markdown-body .task-list-item.hovered>.handle{opacity:1}.gist .reorderable-task-lists .markdown-body .task-list-item.is-dragging{opacity:0}.gist .review-comment-contents .markdown-body .task-list-item{border-bottom-left-radius:3px;border-top-left-radius:3px;margin-left:-12px;margin-right:-12px;padding-left:42px}.gist .review-comment-contents .markdown-body .task-list-item.hovered{border-left-color:#ededed}.gist .highlight{background:#fff;border:0;color:#333;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;font-weight:400;line-height:1.4;margin:0;padding:0}.gist .octospinner,.gist .render-viewer-error,.gist .render-viewer-fatal,.gist .render-viewer-invalid{display:none}.gist iframe.render-viewer{border:0;height:480px;overflow:hidden;width:100%}.gist code,.gist pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace!important;white-space:pre}.gist .gist-meta{background-color:#f7f7f7;border-radius:0 0 2px 2px;color:#586069;font:12px -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;overflow:hidden;padding:10px}.gist .gist-meta a{border:0;color:#666;font-weight:600;text-decoration:none}.gist .gist-data{word-wrap:normal;background-color:#fff;border-bottom:1px solid #ddd;border-radius:2px 2px 0 0;overflow:auto}.gist .gist-file{border:1px solid;border-color:#ddd #ddd #ccc;border-radius:3px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;margin-bottom:1em}.gist .gist-file article{padding:6px}.gist .gist-file .scroll .gist-data{bottom:30px;left:0;overflow:scroll;position:absolute;right:0;top:0}.gist .gist-file .scroll .gist-meta{bottom:0;left:0;position:absolute;right:0}.gist .blob-num{min-width:inherit}.gist .blob-code,.gist .blob-num{background:transparent;padding:1px 10px!important}.gist .blob-code{border:0;text-align:left}.gist .blob-wrapper table{border-collapse:collapse}.gist .blob-wrapper tr:first-child td{padding-top:4px}.gist .markdown-body .anchor{display:none}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}
9:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}</style><link rel="preconnect" href="https://www.googletagmanager.com"/><link rel="dns-prefetch" href="https://www.googletagmanager.com"/><style id="jss-server-side">.MuiGrid-container{width:100%;display:flex;flex-wrap:wrap;box-sizing:border-box}.MuiGrid-item{margin:0;box-sizing:border-box}.MuiGrid-zeroMinWidth{min-width:0}.MuiGrid-direction-xs-column{flex-direction:column}.MuiGrid-direction-xs-column-reverse{flex-direction:column-reverse}.MuiGrid-direction-xs-row-reverse{flex-direction:row-reverse}.MuiGrid-wrap-xs-nowrap{flex-wrap:nowrap}.MuiGrid-wrap-xs-wrap-reverse{flex-wrap:wrap-reverse}.MuiGrid-align-items-xs-center{align-items:center}.MuiGrid-align-items-xs-flex-start{align-items:flex-start}.MuiGrid-align-items-xs-flex-end{align-items:flex-end}.MuiGrid-align-items-xs-baseline{align-items:baseline}.MuiGrid-align-content-xs-center{align-content:center}.MuiGrid-align-content-xs-flex-start{align-content:flex-start}.MuiGrid-align-content-xs-flex-end{align-content:flex-end}.MuiGrid-align-content-xs-space-between{align-content:space-between}.MuiGrid-align-content-xs-space-around{align-content:space-around}.MuiGrid-justify-content-xs-center{justify-content:center}.MuiGrid-justify-content-xs-flex-end{justify-content:flex-end}.MuiGrid-justify-content-xs-space-between{justify-content:space-between}.MuiGrid-justify-content-xs-space-around{justify-content:space-around}.MuiGrid-justify-content-xs-space-evenly{justify-content:space-evenly}.MuiGrid-spacing-xs-1{width:calc(100% + 8px);margin:-4px}.MuiGrid-spacing-xs-1>.MuiGrid-item{padding:4px}.MuiGrid-spacing-xs-2{width:calc(100% + 16px);margin:-8px}.MuiGrid-spacing-xs-2>.MuiGrid-item{padding:8px}.MuiGrid-spacing-xs-3{width:calc(100% + 24px);margin:-12px}.MuiGrid-spacing-xs-3>.MuiGrid-item{padding:12px}.MuiGrid-spacing-xs-4{width:calc(100% + 32px);margin:-16px}.MuiGrid-spacing-xs-4>.MuiGrid-item{padding:16px}.MuiGrid-spacing-xs-5{width:calc(100% + 40px);margin:-20px}.MuiGrid-spacing-xs-5>.MuiGrid-item{padding:20px}.MuiGrid-spacing-xs-6{width:calc(100% + 48px);margin:-24px}.MuiGrid-spacing-xs-6>.MuiGrid-item{padding:24px}.MuiGrid-spacing-xs-7{width:calc(100% + 56px);margin:-28px}.MuiGrid-spacing-xs-7>.MuiGrid-item{padding:28px}.MuiGrid-spacing-xs-8{width:calc(100% + 64px);margin:-32px}.MuiGrid-spacing-xs-8>.MuiGrid-item{padding:32px}.MuiGrid-spacing-xs-9{width:calc(100% + 72px);margin:-36px}.MuiGrid-spacing-xs-9>.MuiGrid-item{padding:36px}.MuiGrid-spacing-xs-10{width:calc(100% + 80px);margin:-40px}.MuiGrid-spacing-xs-10>.MuiGrid-item{padding:40px}.MuiGrid-grid-xs-auto{flex-grow:0;max-width:none;flex-basis:auto}.MuiGrid-grid-xs-true{flex-grow:1;max-width:100%;flex-basis:0}.MuiGrid-grid-xs-1{flex-grow:0;max-width:8.333333%;flex-basis:8.333333%}.MuiGrid-grid-xs-2{flex-grow:0;max-width:16.666667%;flex-basis:16.666667%}.MuiGrid-grid-xs-3{flex-grow:0;max-width:25%;flex-basis:25%}.MuiGrid-grid-xs-4{flex-grow:0;max-width:33.333333%;flex-basis:33.333333%}.MuiGrid-grid-xs-5{flex-grow:0;max-width:41.666667%;flex-basis:41.666667%}.MuiGrid-grid-xs-6{flex-grow:0;max-width:50%;flex-basis:50%}.MuiGrid-grid-xs-7{flex-grow:0;max-width:58.333333%;flex-basis:58.333333%}.MuiGrid-grid-xs-8{flex-grow:0;max-width:66.666667%;flex-basis:66.666667%}.MuiGrid-grid-xs-9{flex-grow:0;max-width:75%;flex-basis:75%}.MuiGrid-grid-xs-10{flex-grow:0;max-width:83.333333%;flex-basis:83.333333%}.MuiGrid-grid-xs-11{flex-grow:0;max-width:91.666667%;flex-basis:91.666667%}.MuiGrid-grid-xs-12{flex-grow:0;max-width:100%;flex-basis:100%}@media (min-width:600px){.MuiGrid-grid-sm-auto{flex-grow:0;max-width:none;flex-basis:auto}.MuiGrid-grid-sm-true{flex-grow:1;max-width:100%;flex-basis:0}.MuiGrid-grid-sm-1{flex-grow:0;max-width:8.333333%;flex-basis:8.333333%}.MuiGrid-grid-sm-2{flex-grow:0;max-width:16.666667%;flex-basis:16.666667%}.MuiGrid-grid-sm-3{flex-grow:0;max-width:25%;flex-basis:25%}.MuiGrid-grid-sm-4{flex-grow:0;max-width:33.333333%;flex-basis:33.333333%}.MuiGrid-grid-sm-5{flex-grow:0;max-width:41.666667%;flex-basis:41.666667%}.MuiGrid-grid-sm-6{flex-grow:0;max-width:50%;flex-basis:50%}.MuiGrid-grid-sm-7{flex-grow:0;max-width:58.333333%;flex-basis:58.333333%}.MuiGrid-grid-sm-8{flex-grow:0;max-width:66.666667%;flex-basis:66.666667%}.MuiGrid-grid-sm-9{flex-grow:0;max-width:75%;flex-basis:75%}.MuiGrid-grid-sm-10{flex-grow:0;max-width:83.333333%;flex-basis:83.333333%}.MuiGrid-grid-sm-11{flex-grow:0;max-width:91.666667%;flex-basis:91.666667%}.MuiGrid-grid-sm-12{flex-grow:0;max-width:100%;flex-basis:100%}}@media (min-width:960px){.MuiGrid-grid-md-auto{flex-grow:0;max-width:none;flex-basis:auto}.MuiGrid-grid-md-true{flex-grow:1;max-width:100%;flex-basis:0}.MuiGrid-grid-md-1{flex-grow:0;max-width:8.333333%;flex-basis:8.333333%}.MuiGrid-grid-md-2{flex-grow:0;max-width:16.666667%;flex-basis:16.666667%}.MuiGrid-grid-md-3{flex-grow:0;max-width:25%;flex-basis:25%}.MuiGrid-grid-md-4{flex-grow:0;max-width:33.333333%;flex-basis:33.333333%}.MuiGrid-grid-md-5{flex-grow:0;max-width:41.666667%;flex-basis:41.666667%}.MuiGrid-grid-md-6{flex-grow:0;max-width:50%;flex-basis:50%}.MuiGrid-grid-md-7{flex-grow:0;max-width:58.333333%;flex-basis:58.333333%}.MuiGrid-grid-md-8{flex-grow:0;max-width:66.666667%;flex-basis:66.666667%}.MuiGrid-grid-md-9{flex-grow:0;max-width:75%;flex-basis:75%}.MuiGrid-grid-md-10{flex-grow:0;max-width:83.333333%;flex-basis:83.333333%}.MuiGrid-grid-md-11{flex-grow:0;max-width:91.666667%;flex-basis:91.666667%}.MuiGrid-grid-md-12{flex-grow:0;max-width:100%;flex-basis:100%}}@media (min-width:1280px){.MuiGrid-grid-lg-auto{flex-grow:0;max-width:none;flex-basis:auto}.MuiGrid-grid-lg-true{flex-grow:1;max-width:100%;flex-basis:0}.MuiGrid-grid-lg-1{flex-grow:0;max-width:8.333333%;flex-basis:8.333333%}.MuiGrid-grid-lg-2{flex-grow:0;max-width:16.666667%;flex-basis:16.666667%}.MuiGrid-grid-lg-3{flex-grow:0;max-width:25%;flex-basis:25%}.MuiGrid-grid-lg-4{flex-grow:0;max-width:33.333333%;flex-basis:33.333333%}.MuiGrid-grid-lg-5{flex-grow:0;max-width:41.666667%;flex-basis:41.666667%}.MuiGrid-grid-lg-6{flex-grow:0;max-width:50%;flex-basis:50%}.MuiGrid-grid-lg-7{flex-grow:0;max-width:58.333333%;flex-basis:58.333333%}.MuiGrid-grid-lg-8{flex-grow:0;max-width:66.666667%;flex-basis:66.666667%}.MuiGrid-grid-lg-9{flex-grow:0;max-width:75%;flex-basis:75%}.MuiGrid-grid-lg-10{flex-grow:0;max-width:83.333333%;flex-basis:83.333333%}.MuiGrid-grid-lg-11{flex-grow:0;max-width:91.666667%;flex-basis:91.666667%}.MuiGrid-grid-lg-12{flex-grow:0;max-width:100%;flex-basis:100%}}@media (min-width:1920px){.MuiGrid-grid-xl-auto{flex-grow:0;max-width:none;flex-basis:auto}.MuiGrid-grid-xl-true{flex-grow:1;max-width:100%;flex-basis:0}.MuiGrid-grid-xl-1{flex-grow:0;max-width:8.333333%;flex-basis:8.333333%}.MuiGrid-grid-xl-2{flex-grow:0;max-width:16.666667%;flex-basis:16.666667%}.MuiGrid-grid-xl-3{flex-grow:0;max-width:25%;flex-basis:25%}.MuiGrid-grid-xl-4{flex-grow:0;max-width:33.333333%;flex-basis:33.333333%}.MuiGrid-grid-xl-5{flex-grow:0;max-width:41.666667%;flex-basis:41.666667%}.MuiGrid-grid-xl-6{flex-grow:0;max-width:50%;flex-basis:50%}.MuiGrid-grid-xl-7{flex-grow:0;max-width:58.333333%;flex-basis:58.333333%}.MuiGrid-grid-xl-8{flex-grow:0;max-width:66.666667%;flex-basis:66.666667%}.MuiGrid-grid-xl-9{flex-grow:0;max-width:75%;flex-basis:75%}.MuiGrid-grid-xl-10{flex-grow:0;max-width:83.333333%;flex-basis:83.333333%}.MuiGrid-grid-xl-11{flex-grow:0;max-width:91.666667%;flex-basis:91.666667%}.MuiGrid-grid-xl-12{flex-grow:0;max-width:100%;flex-basis:100%}}.MuiButtonBase-root{color:inherit;border:0;cursor:pointer;margin:0;display:inline-flex;outline:0;padding:0;position:relative;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:0;vertical-align:middle;-moz-appearance:none;justify-content:center;text-decoration:none;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent}.MuiButtonBase-root::-moz-focus-inner{border-style:none}.MuiButtonBase-root.Mui-disabled{cursor:default;pointer-events:none}@media print{.MuiButtonBase-root{-webkit-print-color-adjust:exact;color-adjust:exact}}.MuiButton-root{color:rgba(0,0,0,.87);padding:6px 16px;font-size:.875rem;min-width:64px;box-sizing:border-box;transition:background-color 250ms cubic-bezier(.4, 0, .2, 1) 0s,box-shadow 250ms cubic-bezier(.4, 0, .2, 1) 0s,border 250ms cubic-bezier(.4, 0, .2, 1) 0s;font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:500;line-height:1.75;border-radius:4px;letter-spacing:.02857em;text-transform:uppercase}.MuiButton-root:hover{text-decoration:none;background-color:rgba(0,0,0,.04)}.MuiButton-root.Mui-disabled{color:rgba(0,0,0,.26)}@media (hover:none){.MuiButton-root:hover{background-color:transparent}}.MuiButton-root:hover.Mui-disabled{background-color:transparent}.MuiButton-label{width:100%;display:inherit;align-items:inherit;justify-content:inherit}.MuiButton-text{padding:6px 8px}.MuiButton-textPrimary{color:#3f51b5}.MuiButton-textPrimary:hover{background-color:rgba(63,81,181,.04)}@media (hover:none){.MuiButton-textPrimary:hover{background-color:transparent}}.MuiButton-textSecondary{color:#f50057}.MuiButton-textSecondary:hover{background-color:rgba(245,0,87,.04)}@media (hover:none){.MuiButton-textSecondary:hover{background-color:transparent}}.MuiButton-outlined{border:1px solid rgba(0,0,0,.23);padding:5px 15px}.MuiButton-outlined.Mui-disabled{border:1px solid rgba(0,0,0,.12)}.MuiButton-outlinedPrimary{color:#3f51b5;border:1px solid rgba(63,81,181,.5)}.MuiButton-outlinedPrimary:hover{border:1px solid #3f51b5;background-color:rgba(63,81,181,.04)}@media (hover:none){.MuiButton-outlinedPrimary:hover{background-color:transparent}}.MuiButton-outlinedSecondary{color:#f50057;border:1px solid rgba(245,0,87,.5)}.MuiButton-outlinedSecondary:hover{border:1px solid #f50057;background-color:rgba(245,0,87,.04)}.MuiButton-outlinedSecondary.Mui-disabled{border:1px solid rgba(0,0,0,.26)}@media (hover:none){.MuiButton-outlinedSecondary:hover{background-color:transparent}}.MuiButton-contained{color:rgba(0,0,0,.87);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);background-color:#e0e0e0}.MuiButton-contained:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);background-color:#d5d5d5}.MuiButton-contained.Mui-focusVisible{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.MuiButton-contained:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.MuiButton-contained.Mui-disabled{color:rgba(0,0,0,.26);box-shadow:none;background-color:rgba(0,0,0,.12)}@media (hover:none){.MuiButton-contained:hover{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);background-color:#e0e0e0}}.MuiButton-contained:hover.Mui-disabled{background-color:rgba(0,0,0,.12)}.MuiButton-containedPrimary{color:#fff;background-color:#3f51b5}.MuiButton-containedPrimary:hover{background-color:#303f9f}@media (hover:none){.MuiButton-containedPrimary:hover{background-color:#3f51b5}}.MuiButton-containedSecondary{color:#fff;background-color:#f50057}.MuiButton-containedSecondary:hover{background-color:#c51162}@media (hover:none){.MuiButton-containedSecondary:hover{background-color:#f50057}}.MuiButton-disableElevation{box-shadow:none}.MuiButton-disableElevation:hover{box-shadow:none}.MuiButton-disableElevation.Mui-focusVisible{box-shadow:none}.MuiButton-disableElevation:active{box-shadow:none}.MuiButton-disableElevation.Mui-disabled{box-shadow:none}.MuiButton-colorInherit{color:inherit;border-color:currentColor}.MuiButton-textSizeSmall{padding:4px 5px;font-size:.8125rem}.MuiButton-textSizeLarge{padding:8px 11px;font-size:.9375rem}.MuiButton-outlinedSizeSmall{padding:3px 9px;font-size:.8125rem}.MuiButton-outlinedSizeLarge{padding:7px 21px;font-size:.9375rem}.MuiButton-containedSizeSmall{padding:4px 10px;font-size:.8125rem}.MuiButton-containedSizeLarge{padding:8px 22px;font-size:.9375rem}.MuiButton-fullWidth{width:100%}.MuiButton-startIcon{display:inherit;margin-left:-4px;margin-right:8px}.MuiButton-startIcon.MuiButton-iconSizeSmall{margin-left:-2px}.MuiButton-endIcon{display:inherit;margin-left:8px;margin-right:-4px}.MuiButton-endIcon.MuiButton-iconSizeSmall{margin-right:-2px}.MuiButton-iconSizeSmall>:first-child{font-size:18px}.MuiButton-iconSizeMedium>:first-child{font-size:20px}.MuiButton-iconSizeLarge>:first-child{font-size:22px}.MuiInputBase-root{color:rgba(0,0,0,.87);
9cursor:text;display:inline-flex;position:relative;font-size:1rem;box-sizing:border-box;align-items:center;font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.1876em;letter-spacing:.00938em}.MuiInputBase-root.Mui-disabled{color:rgba(0,0,0,.38);cursor:default}.MuiInputBase-multiline{padding:6px 0 7px}.MuiInputBase-multiline.MuiInputBase-marginDense{padding-top:3px}.MuiInputBase-fullWidth{width:100%}.MuiInputBase-input{font:inherit;color:currentColor;width:100%;border:0;height:1.1876em;margin:0;display:block;padding:6px 0 7px;min-width:0;background:0 0;box-sizing:content-box;animation-name:mui-auto-fill-cancel;letter-spacing:inherit;animation-duration:10ms;-webkit-tap-highlight-color:transparent}.MuiInputBase-input::-webkit-input-placeholder{color:currentColor;opacity:.42;-webkit-transition:opacity .2s cubic-bezier(.4, 0, .2, 1) 0s;transition:opacity .2s cubic-bezier(.4, 0, .2, 1) 0s}.MuiInputBase-input::-moz-placeholder{color:currentColor;opacity:.42;-moz-transition:opacity .2s cubic-bezier(.4, 0, .2, 1) 0s;transition:opacity .2s cubic-bezier(.4, 0, .2, 1) 0s}.MuiInputBase-input:-ms-input-placeholder{color:currentColor;opacity:.42;-ms-transition:opacity .2s cubic-bezier(.4, 0, .2, 1) 0s;transition:opacity .2s cubic-bezier(.4, 0, .2, 1) 0s}.MuiInputBase-input::-ms-input-placeholder{color:currentColor;opacity:.42;-ms-transition:opacity .2s cubic-bezier(.4, 0, .2, 1) 0s;transition:opacity .2s cubic-bezier(.4, 0, .2, 1) 0s}.MuiInputBase-input:focus{outline:0}.MuiInputBase-input:invalid{box-shadow:none}.MuiInputBase-input::-webkit-search-decoration{-webkit-appearance:none}.MuiInputBase-input.Mui-disabled{opacity:1}.MuiInputBase-input:-webkit-autofill{animation-name:mui-auto-fill;animation-duration:5000s}label[data-shrink=false]+.MuiInputBase-formControl .MuiInputBase-input::-webkit-input-placeholder{opacity:0!important}label[data-shrink=false]+.MuiInputBase-formControl .MuiInputBase-input::-moz-placeholder{opacity:0!important}label[data-shrink=false]+.MuiInputBase-formControl .MuiInputBase-input:-ms-input-placeholder{opacity:0!important}label[data-shrink=false]+.MuiInputBase-formControl .MuiInputBase-input::-ms-input-placeholder{opacity:0!important}label[data-shrink=false]+.MuiInputBase-formControl .MuiInputBase-input:focus::-webkit-input-placeholder{opacity:.42}label[data-shrink=false]+.MuiInputBase-formControl .MuiInputBase-input:focus::-moz-placeholder{opacity:.42}label[data-shrink=false]+.MuiInputBase-formControl .MuiInputBase-input:focus:-ms-input-placeholder{opacity:.42}label[data-shrink=false]+.MuiInputBase-formControl .MuiInputBase-input:focus::-ms-input-placeholder{opacity:.42}.MuiInputBase-inputMarginDense{padding-top:3px}.MuiInputBase-inputMultiline{height:auto;resize:none;padding:0}.MuiInputBase-inputTypeSearch{-moz-appearance:textfield;-webkit-appearance:textfield}.jss76{top:-5px;left:0;right:0;bottom:0;margin:0;padding:0 8px;overflow:hidden;position:absolute;border-style:solid;border-width:1px;border-radius:inherit;pointer-events:none}.jss77{padding:0;text-align:left;transition:width 150ms cubic-bezier(0, 0, .2, 1) 0s;line-height:11px}.jss78{width:auto;height:11px;display:block;padding:0;font-size:.75em;max-width:.01px;text-align:left;transition:max-width 50ms cubic-bezier(0, 0, .2, 1) 0s;visibility:hidden}.jss78>span{display:inline-block;padding-left:5px;padding-right:5px}.jss79{max-width:1000px;transition:max-width .1s cubic-bezier(0, 0, .2, 1) 50ms}.MuiOutlinedInput-root{position:relative;border-radius:4px}.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0,0,0,.87)}@media (hover:none){.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0,0,0,.23)}}.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#3f51b5;border-width:2px}.MuiOutlinedInput-root.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#f44336}.MuiOutlinedInput-root.Mui-disabled .MuiOutlinedInput-notchedOutline{border-color:rgba(0,0,0,.26)}.MuiOutlinedInput-colorSecondary.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#f50057}.MuiOutlinedInput-adornedStart{padding-left:14px}.MuiOutlinedInput-adornedEnd{padding-right:14px}.MuiOutlinedInput-multiline{padding:18.5px 14px}.MuiOutlinedInput-multiline.MuiOutlinedInput-marginDense{padding-top:10.5px;padding-bottom:10.5px}.MuiOutlinedInput-notchedOutline{border-color:rgba(0,0,0,.23)}.MuiOutlinedInput-input{padding:18.5px 14px}.MuiOutlinedInput-input:-webkit-autofill{border-radius:inherit}.MuiOutlinedInput-inputMarginDense{padding-top:10.5px;padding-bottom:10.5px}.MuiOutlinedInput-inputMultiline{padding:0}.MuiOutlinedInput-inputAdornedStart{padding-left:0}.MuiOutlinedInput-inputAdornedEnd{padding-right:0}.MuiFormLabel-root{color:rgba(0,0,0,.54);padding:0;font-size:1rem;font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1;letter-spacing:.00938em}.MuiFormLabel-root.Mui-focused{color:#3f51b5}.MuiFormLabel-root.Mui-disabled{color:rgba(0,0,0,.38)}.MuiFormLabel-root.Mui-error{color:#f44336}.MuiFormLabel-colorSecondary.Mui-focused{color:#f50057}.MuiFormLabel-asterisk.Mui-error{color:#f44336}.MuiInputLabel-root{display:block;transform-origin:top left}.MuiInputLabel-formControl{top:0;left:0;position:absolute;transform:translate(0,24px) scale(1)}.MuiInputLabel-marginDense{transform:translate(0,21px) scale(1)}.MuiInputLabel-shrink{transform:translate(0,1.5px) scale(.75);transform-origin:top left}.MuiInputLabel-animated{transition:color .2s cubic-bezier(0, 0, .2, 1) 0s,transform .2s cubic-bezier(0, 0, .2, 1) 0s}.MuiInputLabel-filled{z-index:1;transform:translate(12px,20px) scale(1);pointer-events:none}.MuiInputLabel-filled.MuiInputLabel-marginDense{transform:translate(12px,17px) scale(1)}.MuiInputLabel-filled.MuiInputLabel-shrink{transform:translate(12px,10px) scale(.75)}.MuiInputLabel-filled.MuiInputLabel-shrink.MuiInputLabel-marginDense{transform:translate(12px,7px) scale(.75)}.MuiInputLabel-outlined{z-index:1;transform:translate(14px,20px) scale(1);pointer-events:none}.MuiInputLabel-outlined.MuiInputLabel-marginDense{transform:translate(14px,12px) scale(1)}.MuiInputLabel-outlined.MuiInputLabel-shrink{transform:translate(14px,-6px) scale(.75)}.MuiFormControl-root{border:0;margin:0;display:inline-flex;padding:0;position:relative;min-width:0;flex-direction:column;vertical-align:top}.MuiFormControl-marginNormal{margin-top:16px;margin-bottom:8px}.MuiFormControl-marginDense{margin-top:8px;margin-bottom:4px}.MuiFormControl-fullWidth{width:100%}.jss44{padding:32px;max-width:800px;margin-left:32px;margin-right:32px;border-radius:8px;margin-bottom:32px}.jss45{display:flex;margin-bottom:24px;justify-content:center}.jss46{width:auto;height:80px}.jss47{font-size:20px;text-align:center;font-family:Nunito Sans;font-weight:400;line-height:1.5;margin-bottom:24px}.jss48{gap:16px;margin:0 auto 28px;display:grid;max-width:600px;margin-bottom:28px;grid-template-columns:repeat(2,1fr)}@media (max-width:959.95px){.jss48{gap:12px;grid-template-columns:1fr}}.jss49{gap:14px;display:flex;padding:16px 18px;transition:all .2s ease;align-items:flex-start;border-radius:12px}.jss49:hover{transform:translateY(-2px)}@media (max-width:959.95px){.jss49{padding:14px 16px}}.jss50{color:#4636f7;width:44px;height:44px;display:flex;align-items:center;flex-shrink:0;border-radius:10px;justify-content:center}@media (max-width:959.95px){.jss50{width:40px;height:40px}}.jss51{gap:4px;display:flex;flex-direction:column}.jss52{font-size:15px;font-family:Inter,Nunito Sans,sans-serif;font-weight:600;letter-spacing:-.01em}@media (max-width:959.95px){.jss52{font-size:14px}}.jss53{font-size:13px;font-family:Inter,Nunito Sans,sans-serif;font-weight:400;line-height:1.4}@media (max-width:959.95px){.jss53{font-size:12px}}.jss54{padding:16px;position:relative;background:#fff;border-radius:12px;margin-bottom:24px}@media (max-width:959.95px){.jss54{padding:12px;margin-bottom:16px}}.jss55{color:#374151;font-size:14px;font-style:italic;font-family:Inter;line-height:1.5;margin-bottom:12px}@media (max-width:959.95px){.jss55{font-size:12px;margin-bottom:8px}}.jss56{color:#111827;font-size:14px;font-family:Inter;font-weight:600}@media (max-width:959.95px){.jss56{font-size:12px}}.jss57{color:#6b7280;font-size:12px;font-family:Inter}@media (max-width:959.95px){.jss57{font-size:11px}}.jss58{top:8px;left:8px;color:#4636f7;opacity:.1;position:absolute;font-size:32px;font-family:Georgia;line-height:1}.jss59{margin-top:24px;margin-bottom:16px}.jss60{gap:16px;display:flex;margin-bottom:8px;justify-content:center}@media (max-width:959.95px){.jss60{align-items:center;flex-direction:column}}.jss61{width:100%;max-width:400px}.jss61 .MuiOutlinedInput-root{background-color:#fff}.jss62{color:#222;background-color:#fff}.jss63{color:#fff;height:-moz-fit-content;height:fit-content;padding:12px 24px;background-color:#4636f7!important}.jss63:hover{background-color:#3428b5!important}@media (max-width:959.95px){.jss63{width:100%;max-width:400px}}.jss64{color:#f44336;font-size:14px;margin-top:8px;text-align:center}.jss65{opacity:.8;font-size:14px;text-align:center;font-family:Nunito Sans;font-weight:400}
9.jss66{display:flex;min-height:200px;align-items:center;justify-content:center}.jss67{padding:32px;font-size:20px;text-align:center;font-family:Nunito Sans;font-weight:400}.jss68{background:#d6effe}.jss69{color:#222}.jss70{background:rgba(255,255,255,.7);border:1px solid rgba(70,54,247,.08)}.jss70:hover{box-shadow:0 8px 24px rgba(70,54,247,.12);background:rgba(255,255,255,.95)}.jss71{background:rgba(70,54,247,.1)}.jss72{color:#1a1a2e}.jss73{color:#64748b}.jss74{color:#222}.jss75{color:#222}.MuiContainer-root{width:100%;display:block;box-sizing:border-box;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px}@media (min-width:600px){.MuiContainer-root{padding-left:24px;padding-right:24px}}.MuiContainer-disableGutters{padding-left:0;padding-right:0}@media (min-width:600px){.MuiContainer-fixed{max-width:600px}}@media (min-width:960px){.MuiContainer-fixed{max-width:960px}}@media (min-width:1280px){.MuiContainer-fixed{max-width:1280px}}@media (min-width:1920px){.MuiContainer-fixed{max-width:1920px}}@media (min-width:0px){.MuiContainer-maxWidthXs{max-width:444px}}@media (min-width:600px){.MuiContainer-maxWidthSm{max-width:600px}}@media (min-width:960px){.MuiContainer-maxWidthMd{max-width:960px}}@media (min-width:1280px){.MuiContainer-maxWidthLg{max-width:1280px}}@media (min-width:1920px){.MuiContainer-maxWidthXl{max-width:1920px}}@media print{.MuiDialog-root{position:absolute!important}}.MuiDialog-scrollPaper{display:flex;align-items:center;justify-content:center}.MuiDialog-scrollBody{overflow-x:hidden;overflow-y:auto;text-align:center}.MuiDialog-scrollBody:after{width:0;height:100%;content:"";display:inline-block;vertical-align:middle}.MuiDialog-container{height:100%;outline:0}@media print{.MuiDialog-container{height:auto}}.MuiDialog-paper{margin:32px;position:relative;overflow-y:auto}@media print{.MuiDialog-paper{box-shadow:none;overflow-y:visible}}.MuiDialog-paperScrollPaper{display:flex;max-height:calc(100% - 64px);flex-direction:column}.MuiDialog-paperScrollBody{display:inline-block;text-align:left;vertical-align:middle}.MuiDialog-paperWidthFalse{max-width:calc(100% - 64px)}.MuiDialog-paperWidthXs{max-width:444px}@media (max-width:507.95px){.MuiDialog-paperWidthXs.MuiDialog-paperScrollBody{max-width:calc(100% - 64px)}}.MuiDialog-paperWidthSm{max-width:600px}@media (max-width:663.95px){.MuiDialog-paperWidthSm.MuiDialog-paperScrollBody{max-width:calc(100% - 64px)}}.MuiDialog-paperWidthMd{max-width:960px}@media (max-width:1023.95px){.MuiDialog-paperWidthMd.MuiDialog-paperScrollBody{max-width:calc(100% - 64px)}}.MuiDialog-paperWidthLg{max-width:1280px}@media (max-width:1343.95px){.MuiDialog-paperWidthLg.MuiDialog-paperScrollBody{max-width:calc(100% - 64px)}}.MuiDialog-paperWidthXl{max-width:1920px}@media (max-width:1983.95px){.MuiDialog-paperWidthXl.MuiDialog-paperScrollBody{max-width:calc(100% - 64px)}}.MuiDialog-paperFullWidth{width:calc(100% - 64px)}.MuiDialog-paperFullScreen{width:100%;height:100%;margin:0;max-width:100%;max-height:none;border-radius:0}.MuiDialog-paperFullScreen.MuiDialog-paperScrollBody{margin:0;max-width:100%}.jss80{width:100%;display:flex;background:#222;border-top:1px solid #333;padding-top:32px;padding-left:16px;padding-right:16px;padding-bottom:32px;justify-content:center}@media (max-width:1279.95px){.jss80{text-align:center;padding-bottom:32px}}.jss81{display:flex;align-items:center;justify-content:center}@media (max-width:959.95px){.jss81{text-align:center;align-items:center;justify-content:center}}.jss82{color:#fff;font-size:18px;margin-top:8px;font-family:Nunito Sans;font-weight:400}@media (min-width:960px){.jss82{width:80%}}@media (max-width:1279.95px){.jss82{text-align:center;padding-top:16px}}@media (max-width:959.95px){.jss82{font-size:15px;margin-top:16px}}.jss83{gap:16px;display:flex;flex-direction:column}@media (max-width:959.95px){.jss83{gap:12px;align-items:center;margin-bottom:24px}}.jss84{max-width:300px;align-self:center}.jss85{color:#fff;font-size:24px;margin-top:32px;font-family:Inter;font-weight:400;margin-bottom:32px}.jss85 a{color:#95a2b3}@media (max-width:959.95px){.jss85{font-size:20px;margin-top:20px;margin-bottom:20px}}.jss85 a:hover{color:#4636f7}.jss86{display:flex;margin-top:8px;flex-direction:row}@media (max-width:959.95px){.jss86{gap:8px;width:100%;align-items:stretch;margin-bottom:8px;flex-direction:column}}.jss87{flex-grow:6}.jss87 label.Mui-focused{color:#939393}@media (max-width:959.95px){.jss87{width:100%;margin-bottom:8px}}.jss87 .MuiOutlinedInput-root fieldset{border-color:#939393}.jss87 .MuiOutlinedInput-root.Mui-focused fieldset{border-color:#939393}.jss88{color:#222;background-color:#fff}.jss89{color:#4636f7}.jss90{color:#fff;padding:12px;flex-grow:1;margin-left:16px;background-color:#4636f7!important}.jss90:hover{background-color:#3428b5}@media (max-width:959.95px){.jss90{width:100%;margin-top:8px;margin-left:0}}.jss91{color:#fff}.jss91:hover{background-color:#4636f7}.jss92{color:#fff;font-size:18px;margin-top:24px;font-family:Nunito Sans;font-weight:400}@media (max-width:959.95px){.jss92{font-size:15px;margin-top:16px}}.jss93{color:#fff;transition:background .2s,color .2s;text-decoration:underline}.jss93:hover{color:#fff;cursor:pointer;background-color:#4636f7}@media (max-width:959.95px){.jss94{text-align:left;padding-bottom:8px}}
9.jss95{display:none}@media (max-width:959.95px){.jss95{width:100%;margin:24px 0 16px 0;display:block;border-top:1px solid #333}}.jss4{display:flex;min-height:100vh;flex-direction:column}.jss5{flex:1;padding-left:0;padding-right:0}.jss7{width:100%;background:#222}.jss8{width:100%;background-color:#0f0757}.jss9{top:50%;left:0;z-index:10;position:fixed}.jss9:hover{cursor:pointer}.jss10{height:100%}.jss11{color:#222;font-size:20px;font-family:Nunito Sans;font-weight:400}.jss12{display:flex;align-items:center;justify-content:center}.jss13{height:250px}.jss14{margin:24px;padding:32px;max-width:600px;background:#d6effe;border-radius:24px}@media (max-width:959.95px){.jss14{margin:16px;padding:24px 16px}}.jss15{padding:0}.jss15.MuiDialogContent-root{padding:0}.jss16{display:flex;align-items:center;margin-bottom:24px;justify-content:center}.jss17{width:auto;height:80px;-o-object-fit:contain;object-fit:contain}@media (max-width:959.95px){.jss17{height:60px}}.jss18{color:#374151;font-size:16px;text-align:center;font-family:Inter;font-weight:700;line-height:1.5;margin-bottom:16px}@media (max-width:959.95px){.jss18{font-size:14px;margin-bottom:12px}}.jss19{gap:12px;display:grid;margin-bottom:24px;grid-template-columns:repeat(2,1fr)}@media (max-width:959.95px){.jss19{gap:10px;margin-bottom:16px;grid-template-columns:1fr}}.jss20{gap:12px;border:1px solid rgba(70,54,247,.08);display:flex;padding:12px 14px;background:rgba(255,255,255,.7);transition:all .2s ease;align-items:flex-start;border-radius:10px}.jss20:hover{transform:translateY(-1px);background:rgba(255,255,255,.95);box-shadow:0 4px 16px rgba(70,54,247,.1)}@media (max-width:959.95px){.jss20{gap:10px;padding:10px 12px}}.jss21{color:#4636f7;width:36px;height:36px;display:flex;background:rgba(70,54,247,.1);align-items:center;flex-shrink:0;border-radius:8px;justify-content:center}@media (max-width:959.95px){.jss21{width:32px;height:32px}}.jss22{gap:2px;display:flex;flex-direction:column}
9.jss23{color:#1a1a2e;font-size:13px;font-family:Inter;font-weight:600;letter-spacing:-.01em}@media (max-width:959.95px){.jss23{font-size:12px}}.jss24{color:#64748b;font-size:11px;font-family:Inter;font-weight:400;line-height:1.3}@media (max-width:959.95px){.jss24{font-size:10px}}.jss25{padding:16px;position:relative;background:#fff;border-radius:12px;margin-bottom:24px}@media (max-width:959.95px){.jss25{padding:12px;margin-bottom:16px}}.jss26{color:#374151;font-size:14px;font-style:italic;font-family:Inter;line-height:1.5;margin-bottom:12px}@media (max-width:959.95px){.jss26{font-size:12px;margin-bottom:8px}}.jss27{color:#111827;font-size:14px;font-family:Inter;font-weight:600}@media (max-width:959.95px){.jss27{font-size:12px}}.jss28{color:#6b7280;font-size:12px;font-family:Inter}@media (max-width:959.95px){.jss28{font-size:11px}}.jss29{margin-bottom:16px}.jss30{gap:8px;display:flex;align-items:flex-start;margin-bottom:12px}@media (max-width:959.95px){.jss30{gap:8px;margin-top:8px;flex-direction:column}}.jss31{flex:1 1 auto;width:100%}.jss31 .MuiOutlinedInput-root{height:40px;border-radius:8px;background-color:#fff}.jss31 .MuiFormHelperText-root{color:#dc2626;margin-top:4px;margin-left:0}.jss31 .MuiOutlinedInput-root input{padding:8px 16px;font-size:14px}.jss31 .MuiOutlinedInput-root fieldset{border-color:transparent}
9.jss31 .MuiOutlinedInput-root input::-moz-placeholder{color:#6b7280;opacity:1}.jss31 .MuiOutlinedInput-root input::placeholder{color:#6b7280;opacity:1}.jss32{color:#fff;height:40px;padding:8px 24px;font-size:14px;font-weight:500;white-space:nowrap;border-radius:8px;background-color:#4636f7!important}.jss32:hover{background-color:#3428b5!important}@media (max-width:959.95px){.jss32{width:100%;font-size:13px}}.jss33{color:#6b7280;font-size:12px;margin-top:16px;text-align:center;font-family:Inter}@media (max-width:959.95px){.jss33{font-size:11px;margin-top:12px}}.jss34{display:flex;padding:32px 24px;text-align:center;align-items:center;flex-direction:column}@media (max-width:959.95px){.jss34{padding:24px 16px}}.jss35{font-size:48px;margin-bottom:16px}@media (max-width:959.95px){.jss35{font-size:40px}}.jss36{color:#111827;font-size:24px;font-family:Inter;font-weight:600;margin-bottom:16px}@media (max-width:959.95px){.jss36{font-size:20px}}.jss37{color:#374151;font-size:16px;font-family:Inter;line-height:1.5;margin-bottom:24px}@media (max-width:959.95px){.jss37{font-size:14px}}.jss38{color:#fff;padding:8px 32px;font-size:16px;font-weight:500;border-radius:8px;background-color:#4636f7!important}.jss38:hover{background-color:#3428b5!important}@media (max-width:959.95px){.jss38{font-size:14px}}.jss39{color:#dc2626;font-size:14px;margin-top:4px;font-family:Inter;margin-left:4px}@media (max-width:959.95px){.jss39{text-align:center}}.jss40{top:8px;left:8px;color:#4636f7;opacity:.1;position:absolute;font-size:32px;font-family:Georgia;line-height:1}.jss41{margin-top:64px;text-align:center;padding-left:16px;margin-bottom:96px;padding-right:16px}.jss42{color:#222;font-size:48px;font-family:Nunito Sans;font-weight:600}.jss43{color:#222;font-size:20px;margin-top:20px;font-family:Nunito Sans;font-weight:400}.jss1{padding:16px}.jss2{margin-bottom:96px}.jss3{margin:auto;max-width:960px;text-align:center;margin-bottom:64px}</style><link rel="canonical" href="https://www.jetpackcompose.app/articles" data-baseprotocol="https:" data-basehost="www.jetpackcompose.app"/><link rel="sitemap" type="application/xml" href="/sitemap/sitemap-index.xml"/><title data-react-helmet="true">Jetpack Compose Articles - Expert Tutorials and Guides</title><link data-react-helmet="true" rel="canonical" href="https://www.jetpackcompose.app/articles"/><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript>
9<script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script>
9<link rel="preload" href="/fonts/NunitoSans-VariableFont_YTLC,opsz,wdth,wght.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="/fonts/Inter-VariableFont_slnt,wght.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="/fonts/PlayfairDisplay-VariableFont_wght.woff2" as="font" type="font/woff2" crossorigin="anonymous"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><main><div class="jss4"><aside aria-label="sponsored promotion" class="w-full text-white border-b border-gray-100 overflow-hidden" style="background-color:#222"><a href="https://screenshotbot.io?utm_source=jpa" target="_blank" rel="noopener noreferrer sponsored" class="block cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-600" aria-label="Screenshotbot: AI might be writing Compose for you, who is testing it?. Learn More" title="Screenshotbot: Learn More"><div class="mx-auto max-w-6xl px-4 py-3 md:py-4 grid grid-cols-1 sm:grid-cols-[auto,max-content] justify-center items-center gap-2 sm:gap-4 cursor-pointer"><div class="flex items-center justify-center sm:justify-start gap-2 min-w-0"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained object-contain"><div style="max-width:250px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='25.303643724696354' width='250' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear"></div><picture><source type="image/webp" data-srcset="/static/5e413accbec320fef09f75c7becfb10b/d9ce9/screenshotbot-light.webp 59w,/static/5e413accbec320fef09f75c7becfb10b/0b912/screenshotbot-light.webp 125w,/static/5e413accbec320fef09f75c7becfb10b/a6912/screenshotbot-light.webp 247w,/static/5e413accbec320fef09f75c7becfb10b/057b0/screenshotbot-light.webp 500w" sizes="(min-width: 250px) 250px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 250px) 250px, 100vw" decoding="async" loading="lazy" data-src="/static/5e413accbec320fef09f75c7becfb10b/f4d77/screenshotbot-light.png" data-srcset="/static/5e413accbec320fef09f75c7becfb10b/13976/screenshotbot-light.png 59w,/static/5e413accbec320fef09f75c7becfb10b/ede43/screenshotbot-light.png 125w,/static/5e413accbec320fef09f75c7becfb10b/f4d77/screenshotbot-light.png 247w,/static/5e413accbec320fef09f75c7becfb10b/edc18/screenshotbot-light.png 500w" alt="Screenshotbot logo"/></picture><noscript><picture><source type="image/webp" srcSet="/static/5e413accbec320fef09f75c7becfb10b/d9ce9/screenshotbot-light.webp 59w,/static/5e413accbec320fef09f75c7becfb10b/0b912/screenshotbot-light.webp 125w,/static/5e413accbec320fef09f75c7becfb10b/a6912/screenshotbot-light.webp 247w,/static/5e413accbec320fef09f75c7becfb10b/057b0/screenshotbot-light.webp 500w" sizes="(min-width: 250px) 250px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 250px) 250px, 100vw" decoding="async" loading="lazy" src="/static/5e413accbec320fef09f75c7becfb10b/f4d77/screenshotbot-light.png" srcSet="/static/5e413accbec320fef09f75c7becfb10b/13976/screenshotbot-light.png 59w,/static/5e413accbec320fef09f75c7becfb10b/ede43/screenshotbot-light.png 125w,/static/5e413accbec320fef09f75c7becfb10b/f4d77/screenshotbot-light.png 247w,/static/5e413accbec320fef09f75c7becfb10b/edc18/screenshotbot-light.png 500w" alt="Screenshotbot logo"/></picture></noscript>
9<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
9</div></div><div class="flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-3 min-w-0 text-center sm:text-left"><div class="min-w-0"><div class="font-inter text-sm md:text-base font-semibold leading-snug break-words">AI might be writing Compose for you, who is testing it?</div><div class="font-nunitoSans text-sm md:text-base text-emerald-100 leading-snug">Scale up your Screenshot Testing today</div></div><span class="inline-flex items-center justify-center rounded-md bg-emerald-700 text-white font-inter text-sm md:text-base font-semibold px-3 py-1.5 shadow-sm whitespace-nowrap w-full sm:w-auto">Learn More</span></div></div></a></aside><nav class="pt-4 pb-4 pl-4 pr-6 w-full z-50" role="navigation" aria-label="Main Navigation"><div class="w-full"><div class="flex w-full justify-between items-center"><a title="JetpackCompose.app Home Page" aria-label="Return to JetpackCompose.app Home Page" href="/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained max-w-[240px] min-w-[100px]"><div style="max-width:250px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='47' width='250' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAYAAACOXx+WAAAACXBIWXMAAALFAAACxQGJ1n/vAAAA3ElEQVQY02PIjQlU6i4vzktt+c8iYBvLwKxrx8Cu78jAoe/EwGHgBKFh2AAJo/OhmIFh2kaG6rbW9QsW5KcwMEjJ8pu6+LDrO9pw6Dvpcxg4OXHoOzlxGDhZcBg42XEYONlwGDgZcxg4WYLl9Z00wGoMnEw49J0YQZYwxIWbMIjIMsicnxScEewfacqgYWvOZejkymHgZAo1SI/DAKzZnEPfyZFDHyxmzmHgZAA2yMApEGQRuwHIVy4MDJtKkphXpYcyfGvuMPrf1yGTEhDJwKBqhektfRy0AWrQAABVzTxlPsHDZQAAAABJRU5ErkJggg==" alt=""/><picture><source type="image/webp" data-srcset="/static/5de2f457db02b8027228391155290e4a/6c6d5/JetpackComposeApp_Logo.webp 63w,/static/5de2f457db02b8027228391155290e4a/65b94/JetpackComposeApp_Logo.webp 125w,/static/5de2f457db02b8027228391155290e4a/3c224/JetpackComposeApp_Logo.webp 250w,/static/5de2f457db02b8027228391155290e4a/a98b1/JetpackComposeApp_Logo.webp 500w" sizes="(min-width: 250px) 250px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 250px) 250px, 100vw" decoding="async" loading="lazy" data-src="/static/5de2f457db02b8027228391155290e4a/fe165/JetpackComposeApp_Logo.png" data-srcset="/static/5de2f457db02b8027228391155290e4a/77653/JetpackComposeApp_Logo.png 63w,/static/5de2f457db02b8027228391155290e4a/6a249/JetpackComposeApp_Logo.png 125w,/static/5de2f457db02b8027228391155290e4a/fe165/JetpackComposeApp_Logo.png 250w,/static/5de2f457db02b8027228391155290e4a/04275/JetpackComposeApp_Logo.png 500w" alt="JetpackCompose.app Home"/></picture><noscript><picture><source type="image/webp" srcSet="/static/5de2f457db02b8027228391155290e4a/6c6d5/JetpackComposeApp_Logo.webp 63w,/static/5de2f457db02b8027228391155290e4a/65b94/JetpackComposeApp_Logo.webp 125w,/static/5de2f457db02b8027228391155290e4a/3c224/JetpackComposeApp_Logo.webp 250w,/static/5de2f457db02b8027228391155290e4a/a98b1/JetpackComposeApp_Logo.webp 500w" sizes="(min-width: 250px) 250px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 250px) 250px, 100vw" decoding="async" loading="lazy" src="/static/5de2f457db02b8027228391155290e4a/fe165/JetpackComposeApp_Logo.png" srcSet="/static/5de2f457db02b8027228391155290e4a/77653/JetpackComposeApp_Logo.png 63w,/static/5de2f457db02b8027228391155290e4a/6a249/JetpackComposeApp_Logo.png 125w,/static/5de2f457db02b8027228391155290e4a/fe165/JetpackComposeApp_Logo.png 250w,/static/5de2f457db02b8027228391155290e4a/04275/JetpackComposeApp_Logo.png 500w" alt="JetpackCompose.app Home"/></picture></noscript>
9<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
9</div></a><div class="hidden lg:flex space-x-8"><div class="p-4"><a class="font-inter hover:text-accent whitespace-nowrap text-base text-text" title="Dispatch Newsletter" aria-label="Go to Dispatch Newsletter" href="/newsletter">DISPATCH NEWSLETTER</a></div><div class="p-4"><a class="font-inter hover:text-accent whitespace-nowrap text-base text-text" title="Compare Frameworks" aria-label="Go to Compare Frameworks" href="/compare-declarative-frameworks/JetpackCompose-vs-React-vs-SwiftUI">COMPARE FRAMEWORKS</a><span class="text-[10px] font-inter bg-yellow-100 align-super font-medium p-[2px] antialiased">NEW</span></div><div class="p-4"><a class="font-inter hover:text-accent whitespace-nowrap text-base text-text" title="Which Compose API to use?" aria-label="Go to Which Compose API to use?" href="/What-is-the-equivalent-of-X-in-Jetpack-Compose">WHICH COMPOSE API TO USE?</a></div><div class="p-4"><a aria-current="page" class="text-accent" title="Articles" aria-label="Go to Articles" href="/articles">ARTICLES</a></div><div class="relative p-4"><button class=" font-inter font-normal hover:text-accent whitespace-nowrap text-base inline-flex items-center text-text" title="More Resources & Tools Menu" aria-expanded="false" aria-haspopup="true" aria-label="More Resources & Tools Menu">MORE RESOURCES & TOOLS<!-- --> <svg class="w-4 h-4 ml-2" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button></div></div><div class="lg:hidden"><button class="text-black" aria-expanded="false" aria-label="Toggle navigation menu"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="24" height="24"><path fill-rule="evenodd" d="M2 5h16a1 1 0 100-2H2a1 1 0 100 2zm0 6h16a1 1 0 100-2H2a1 1 0 100 2zm0 6h16a1 1 0 100-2H2a1 1 0 100 2z" clip-rule="evenodd"></path></svg></button></div></div></div></nav><div class="MuiContainer-root jss5 MuiContainer-maxWidthLg"><div class="jss6"><div class="jss41"><h1 class="jss42">Articles</h1><div class="jss43"></div></div><div class="MuiGrid-root jss2 MuiGrid-container MuiGrid-grid-xs-12 MuiGrid-grid-lg-12"><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-md-6 MuiGrid-grid-lg-4"><div class="MuiGrid-root jss1 MuiGrid-container MuiGrid-justify-content-xs-center"><a href="/articles/space-hoisting-should-I-use-the-padding-modifier-or-the-spacer-composable"><div class="rounded-xl overflow-hidden border transition-transform ease-in-out duration-300 hover:scale-[1.02]"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-full object-cover aspect-video"><div style="max-width:1024px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='1024' width='1024' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/webp;base64,UklGRn4AAABXRUJQVlA4IHIAAADQBACdASoUABQAPslUn0unpKKhsAwA8BkJZwCACJAAzqruFukHFSCZ+kcev2qigAD+93LRcceY9p/2kTP+m1yP1fs/d//oLx6z7fAzDw7STOSrCmyfSb1YfTZ2G0Mq4fiep+tCtFOcR/Gzgj/LNJYgAAA=" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 1024px) 1024px, 100vw" decoding="async" loading="lazy" data-src="/static/e11b706647232c630afb5161ca6930aa/67ded/hero.webp" data-srcset="/static/e11b706647232c630afb5161ca6930aa/22bfc/hero.webp 256w,/static/e11b706647232c630afb5161ca6930aa/d689f/hero.webp 512w,/static/e11b706647232c630afb5161ca6930aa/67ded/hero.webp 1024w" alt="Hero Image"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 1024px) 1024px, 100vw" decoding="async" loading="lazy" src="/static/e11b706647232c630afb5161ca6930aa/67ded/hero.webp" srcSet="/static/e11b706647232c630afb5161ca6930aa/22bfc/hero.webp 256w,/static/e11b706647232c630afb5161ca6930aa/d689f/hero.webp 512w,/static/e11b706647232c630afb5161ca6930aa/67ded/hero.webp 1024w" alt="Hero Image"/></noscript>
9<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
9</div><div class="px-6 py-4 font-inter font-normal"><div class="text-base mb-2 text-slate-600">February 06, 2023</div><div class="text-2xl mb-2 text-black break-words">Space Hoisting: Should I use the padding Modifier or the Spacer composable?</div><div class="text-gray-700 text-lg">ð¤ The padding Modifier and the Spacer composable are both valid ways of adding space to a component. Surely, this must be a mistake. Why else would Jetpack Compose expose two ways of doing the same thing?</div></div><div class="px-6 pb-2"><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">API Design</span><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Reusability</span><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">UI Architecture</span></div></div></a></div></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-md-6 MuiGrid-grid-lg-4"><div class="MuiGrid-root jss1 MuiGrid-container MuiGrid-justify-content-xs-center"><a href="/articles/which-lint-rules-does-jetpack-compose-ship-with"><div class="rounded-xl overflow-hidden border transition-transform ease-in-out duration-300 hover:scale-[1.02]"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-full object-cover aspect-video"><div style="max-width:1920px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='1280' width='1920' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAEDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEA/9oADAMBAAIQAxAAAAHqawNVH//EABkQAQEBAAMAAAAAAAAAAAAAAAIBAwAQE//aAAgBAQABBQLXTyEUU4gXLmev/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGxAAAQQDAAAAAAAAAAAAAAAAEQABAhAhMZH/2gAIAQEABj8CKw9CTFa5X//EABgQAQADAQAAAAAAAAAAAAAAAAEAESEx/9oACAEBAAE/ISxi3QS6Exh4YN2JriucVGf/2gAMAwEAAgADAAAAEOQf/8QAFhEAAwAAAAAAAAAAAAAAAAAAEBEh/9oACAEDAQE/EIh//8QAFREBAQAAAAAAAAAAAAAAAAAAECH/2gAIAQIBAT8Qp//EABsQAQEBAAIDAAAAAAAAAAAAAAERACExUXGB/9oACAEBAAE/EFDQCGVXSQZYdnzDnKyaDyxpC+5L9Jhzv//Z" alt=""/><picture><source type="image/webp" data-srcset="/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/95a23/hero.webp 480w,/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/5bdbe/hero.webp 960w,/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/9c00f/hero.webp 1920w" sizes="(min-width: 1920px) 1920px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 1920px) 1920px, 100vw" decoding="async" loading="lazy" data-src="/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/5267c/hero.jpg" data-srcset="/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/fa695/hero.jpg 480w,/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/a0d3e/hero.jpg 960w,/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/5267c/hero.jpg 1920w" alt="Hero Image"/></picture><noscript><picture><source type="image/webp" srcSet="/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/95a23/hero.webp 480w,/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/5bdbe/hero.webp 960w,/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/9c00f/hero.webp 1920w" sizes="(min-width: 1920px) 1920px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 1920px) 1920px, 100vw" decoding="async" loading="lazy" src="/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/5267c/hero.jpg" srcSet="/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/fa695/hero.jpg 480w,/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/a0d3e/hero.jpg 960w,/static/fbff8dbfa62bfdc6d1d9991084f6b9ad/5267c/hero.jpg 1920w" alt="Hero Image"/></picture></noscript>
9<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
9</div><div class="px-6 py-4 font-inter font-normal"><div class="text-base mb-2 text-slate-600">June 24, 2022</div><div class="text-2xl mb-2 text-black break-words">Which lint rules does Jetpack Compose ship with?</div><div class="text-gray-700 text-lg">ð§¶ Have you wondered which lint rules ship by default with Compose? Do you even know where you can find this list? Learn this and more in this article!</div></div><div class="px-6 pb-2"><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Lint</span><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Productivity</span></div></div></a></div></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-md-6 MuiGrid-grid-lg-4"><div class="MuiGrid-root jss1 MuiGrid-container MuiGrid-justify-content-xs-center"><a href="/articles/productivity-hack-to-save-tens-of-engineering-hours-when-working-with-Jetpack-Compose"><div class="rounded-xl overflow-hidden border transition-transform ease-in-out duration-300 hover:scale-[1.02]"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-full object-cover aspect-video"><div style="max-width:1200px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='800' width='1200' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUBAgME/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAaz2bwUDgP/EABsQAAEEAwAAAAAAAAAAAAAAAAABERITAgMh/9oACAEBAAEFAmdKeVoa1bGRI//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABURAQEAAAAAAAAAAAAAAAAAAAAS/9oACAECAQE/AYQ//8QAGRAAAgMBAAAAAAAAAAAAAAAAAAEQEUEx/9oACAEBAAY/AqWmnGJT/8QAGhABAQEBAAMAAAAAAAAAAAAAAQARMUFh4f/aAAgBAQABPyHWavTPkB6CfgWE8CFav//aAAwDAQACAAMAAAAQl/8A/8QAGBEAAwEBAAAAAAAAAAAAAAAAAAERMVH/2gAIAQMBAT8QcuFXD//EABcRAAMBAAAAAAAAAAAAAAAAAAABESH/2gAIAQIBAT8Qh6yT/8QAHBAAAgICAwAAAAAAAAAAAAAAAREAITFBUWHw/9oACAEBAAE/EAWBCCxmofXBkwdBNc4R0R3AFm+54c//2Q==" alt=""/><picture><source type="image/webp" data-srcset="/static/28109c7cf0774d0eb5fb447fd358c445/9b21f/productivity-hack-hero.webp 300w,/static/28109c7cf0774d0eb5fb447fd358c445/9ff6b/productivity-hack-hero.webp 600w,/static/28109c7cf0774d0eb5fb447fd358c445/f2559/productivity-hack-hero.webp 1200w" sizes="(min-width: 1200px) 1200px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 1200px) 1200px, 100vw" decoding="async" loading="lazy" data-src="/static/28109c7cf0774d0eb5fb447fd358c445/ba986/productivity-hack-hero.png" data-srcset="/static/28109c7cf0774d0eb5fb447fd358c445/f4be1/productivity-hack-hero.png 300w,/static/28109c7cf0774d0eb5fb447fd358c445/b444b/productivity-hack-hero.png 600w,/static/28109c7cf0774d0eb5fb447fd358c445/ba986/productivity-hack-hero.png 1200w" alt="Hero Image"/></picture><noscript><picture><source type="image/webp" srcSet="/static/28109c7cf0774d0eb5fb447fd358c445/9b21f/productivity-hack-hero.webp 300w,/static/28109c7cf0774d0eb5fb447fd358c445/9ff6b/productivity-hack-hero.webp 600w,/static/28109c7cf0774d0eb5fb447fd358c445/f2559/productivity-hack-hero.webp 1200w" sizes="(min-width: 1200px) 1200px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 1200px) 1200px, 100vw" decoding="async" loading="lazy" src="/static/28109c7cf0774d0eb5fb447fd358c445/ba986/productivity-hack-hero.png" srcSet="/static/28109c7cf0774d0eb5fb447fd358c445/f4be1/productivity-hack-hero.png 300w,/static/28109c7cf0774d0eb5fb447fd358c445/b444b/productivity-hack-hero.png 600w,/static/28109c7cf0774d0eb5fb447fd358c445/ba986/productivity-hack-hero.png 1200w" alt="Hero Image"/></picture></noscript>
9<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
9</div><div class="px-6 py-4 font-inter font-normal"><div class="text-base mb-2 text-slate-600">May 02, 2022</div><div class="text-2xl mb-2 text-black break-words">Here's a productivity hack to save tens of engineering hours* when working with Jetpack Compose!</div><div class="text-gray-700 text-lg">â³ Learn about a simple trick that will save you many engineering hours when working with Jetpack Compose!</div></div><div class="px-6 pb-2"><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Android Studio</span><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Productivity</span><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Code Completion</span></div></div></a></div></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-md-6 MuiGrid-grid-lg-4"><div class="MuiGrid-root jss1 MuiGrid-container MuiGrid-justify-content-xs-center"><a href="/articles/how-can-I-debug-recompositions-in-jetpack-compose"><div class="rounded-xl overflow-hidden border transition-transform ease-in-out duration-300 hover:scale-[1.02]"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-full object-cover aspect-video"><div style="max-width:1000px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='667' width='1000' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAgADBP/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHA8jgQq//EABkQAQACAwAAAAAAAAAAAAAAAAECAwAQMv/aAAgBAQABBQKuWWzFl0O//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGRAAAQUAAAAAAAAAAAAAAAAAAAEgISIx/9oACAEBAAY/ApwqKz//xAAaEAEAAgMBAAAAAAAAAAAAAAABADEQESFR/9oACAEBAAE/IfVxhQ6KNUAKjc//2gAMAwEAAgADAAAAEE/P/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAHBABAAIDAAMAAAAAAAAAAAAAAQARITFBgZGh/9oACAEBAAE/EDEsKNO2UZYDNK37hEca89+wA2wxEpTu5kln/9k=" alt=""/><picture><source type="image/webp" data-srcset="/static/476e0fa534fbefede54b20865a8d806b/48571/debug-recomposition-hero.webp 250w,/static/476e0fa534fbefede54b20865a8d806b/76f01/debug-recomposition-hero.webp 500w,/static/476e0fa534fbefede54b20865a8d806b/b7ef5/debug-recomposition-hero.webp 1000w" sizes="(min-width: 1000px) 1000px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 1000px) 1000px, 100vw" decoding="async" loading="lazy" data-src="/static/476e0fa534fbefede54b20865a8d806b/1b035/debug-recomposition-hero.jpg" data-srcset="/static/476e0fa534fbefede54b20865a8d806b/99f43/debug-recomposition-hero.jpg 250w,/static/476e0fa534fbefede54b20865a8d806b/28380/debug-recomposition-hero.jpg 500w,/static/476e0fa534fbefede54b20865a8d806b/1b035/debug-recomposition-hero.jpg 1000w" alt="Hero Image"/></picture><noscript><picture><source type="image/webp" srcSet="/static/476e0fa534fbefede54b20865a8d806b/48571/debug-recomposition-hero.webp 250w,/static/476e0fa534fbefede54b20865a8d806b/76f01/debug-recomposition-hero.webp 500w,/static/476e0fa534fbefede54b20865a8d806b/b7ef5/debug-recomposition-hero.webp 1000w" sizes="(min-width: 1000px) 1000px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 1000px) 1000px, 100vw" decoding="async" loading="lazy" src="/static/476e0fa534fbefede54b20865a8d806b/1b035/debug-recomposition-hero.jpg" srcSet="/static/476e0fa534fbefede54b20865a8d806b/99f43/debug-recomposition-hero.jpg 250w,/static/476e0fa534fbefede54b20865a8d806b/28380/debug-recomposition-hero.jpg 500w,/static/476e0fa534fbefede54b20865a8d806b/1b035/debug-recomposition-hero.jpg 1000w" alt="Hero Image"/></picture></noscript>
9<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
9</div><div class="px-6 py-4 font-inter font-normal"><div class="text-base mb-2 text-slate-600">April 16, 2022</div><div class="text-2xl mb-2 text-black break-words">How can I debug recompositions in Jetpack Compose?</div><div class="text-gray-700 text-lg">â»ï¸ Learn how you can debug recompositions of your Composable functions in Jetpack Compose</div></div><div class="px-6 pb-2"><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Recomposition</span><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Debugging</span></div></div></a></div></div><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-md-6 MuiGrid-grid-lg-4"><div class="MuiGrid-root jss1 MuiGrid-container MuiGrid-justify-content-xs-center"><a href="/articles/donut-hole-skipping-in-jetpack-compose"><div class="rounded-xl overflow-hidden border transition-transform ease-in-out duration-300 hover:scale-[1.02]"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-full object-cover aspect-video"><div style="max-width:980px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='500' width='980' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAACFElEQVQoz4XS3UtTcRgHcP8Hq5FzRRDYIltFDaFuhPoDgqIZIgvBTEgigwgCu0goL8wEaQardl4yC8v25lYQuLOXZjtHMiNonJNb5V3s7DDt7vnGb+dMNwq6+MLD7+LD83uep0lMahAkFYGECj6hVuvNLOTxJFVENFVA5c0nlKIK9EgO5YiCclhGOSTDeJ1jIfZeisrUVAM5BjIkaWKsfpr9AS6exgz/AkX+FTZiShU2UXkTNkIy6REZpWiuDpS2QD6Rh5hZxdT4KK6fcqLbZcdF915MeE7jm38W6/HlrU7N/A3WY8L7IqZmIrh0zIEu5zZc7rCh392CnvZmDHcehvZwDpX4R+i1Lv8JJmvgV4gf1nD31k2ca9uOno5W+CYfIXtvDH1HW+Fx2iD0XsXv2H9AhokprQryi2u4PzyEgUPNGOjcA8HvhzQ6ggtHdsNzoAW+s15UQjL0qLWccMMM2RI0CEkrUh5cuojA7BwGj+9Cr8uGKycc6HPbcd7lgHf/Try7dgfrsWXoVUxh227YMgmSSrwVVnOJPPGZAk088NHgyYPU5dxBZ/bZyNtup0B3P/16niZjfolYZyxGsAG0OqyLaJ3O9OJPTIayGLk9jpdDN/B57LF5d/NL1dkZYQVGUIYRzKEeJEHSSEioJEoqTSc1epYyIy7kiUsVKJj5TpW3X2gjvkJ6RCH2RaOWYI6swyYG/gFux2UKv6hd6QAAAABJRU5ErkJggg==" alt=""/><picture><source type="image/webp" data-srcset="/static/37c58a423fe692ee2ae57cc17512b2e9/5db3e/donut-hole-skipping-hero.webp 245w,/static/37c58a423fe692ee2ae57cc17512b2e9/ab15d/donut-hole-skipping-hero.webp 490w,/static/37c58a423fe692ee2ae57cc17512b2e9/4fa75/donut-hole-skipping-hero.webp 980w" sizes="(min-width: 980px) 980px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 980px) 980px, 100vw" decoding="async" loading="lazy" data-src="/static/37c58a423fe692ee2ae57cc17512b2e9/4d24c/donut-hole-skipping-hero.png" data-srcset="/static/37c58a423fe692ee2ae57cc17512b2e9/db20a/donut-hole-skipping-hero.png 245w,/static/37c58a423fe692ee2ae57cc17512b2e9/a46ff/donut-hole-skipping-hero.png 490w,/static/37c58a423fe692ee2ae57cc17512b2e9/4d24c/donut-hole-skipping-hero.png 980w" alt="Hero Image"/></picture><noscript><picture><source type="image/webp" srcSet="/static/37c58a423fe692ee2ae57cc17512b2e9/5db3e/donut-hole-skipping-hero.webp 245w,/static/37c58a423fe692ee2ae57cc17512b2e9/ab15d/donut-hole-skipping-hero.webp 490w,/static/37c58a423fe692ee2ae57cc17512b2e9/4fa75/donut-hole-skipping-hero.webp 980w" sizes="(min-width: 980px) 980px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 980px) 980px, 100vw" decoding="async" loading="lazy" src="/static/37c58a423fe692ee2ae57cc17512b2e9/4d24c/donut-hole-skipping-hero.png" srcSet="/static/37c58a423fe692ee2ae57cc17512b2e9/db20a/donut-hole-skipping-hero.png 245w,/static/37c58a423fe692ee2ae57cc17512b2e9/a46ff/donut-hole-skipping-hero.png 490w,/static/37c58a423fe692ee2ae57cc17512b2e9/4d24c/donut-hole-skipping-hero.png 980w" alt="Hero Image"/></picture></noscript>
9<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
9</div><div class="px-6 py-4 font-inter font-normal"><div class="text-base mb-2 text-slate-600">September 08, 2021</div><div class="text-2xl mb-2 text-black break-words">What is âdonut-hole skippingâ in Jetpack Compose?</div><div class="text-gray-700 text-lg">ð© Learn how Jetpack Compose optimizes the recomposition of composable functions by skipping work that's unnecessary.</div></div><div class="px-6 pb-2"><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Recomposition</span><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">State Management</span><span class="inline-block bg-slate-800 rounded-full px-3 py-1 text-sm font-medium text-white mr-2 mb-2 font-inter">Donut hole skipping</span></div></div></a></div></div></div><div class="jss3"><div class="jss44 jss68"><div class="MuiGrid-root MuiGrid-container"><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12"><div class="jss45"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained jss46"><div style="max-width:289px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='80' width='289' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB8UlEQVQY0wHmARn+AGMGAAAAAAAAs52cACCm0QaTf3wojjIOEsmJCADbwjIA38EtAOnHJQDhwyoAubJHAOHDKgDZwDAA/+MAAPHKHwDSvTUA3cEuANG8NgDQvDYAAAAAAAD///8AkHt5SrOhn9rhxsT+yk451adKAB/mzjNP4b8rM+vHJDztxyM7zro5MujGJTfpxyQ5/9oFFu7IIiXdwS5L5MQpPNq/MEvawDBGAAAAAASeRCyjoYOA/5aOjv+qjJb/sYWSvfC0AEPawzKu68gipO/JIKHRvDbTzbs3s+bFJ7PQuzjS/88WuenFJqfSvjSd4cMrp868N5jCtz9vANt9JCezdDq0l4F2/6GMjP+mh4T1ZXqlL+/KJjbUtD+zz7Y+oNi3O52kol66yLND2NW5OZ2mqFeCvrFHysKzRLTnvDJq4b8wUtK1P5vVs0F0AP+fMbfhoUP9qXBJv59hVtlXbnMheI+QAEyYcg1mql87TKJuIFypYyt3s1EwVKFuKwCdgw//eXQAAIagFACBpxJbqGQhAImdCWynYztwrVs0APt1GzD/oTI3kToSM4YAACaTWkkAo3hrA16ffwB5p2AAXZxzAG6kZgCTsk0AcaJoAAaTjgDagn0BDH2oAAB3sgBvpWQAAHa3AH6mYQCCqlsAWLziICIS9TQAAAAASUVORK5CYII=" alt=""/><picture><source type="image/webp" data-srcset="/static/6a12a57cfee815305dfb43a1b4278c1d/f23fd/dispatch-simple-logo.webp 72w,/static/6a12a57cfee815305dfb43a1b4278c1d/069fc/dispatch-simple-logo.webp 145w,/static/6a12a57cfee815305dfb43a1b4278c1d/d562f/dispatch-simple-logo.webp 289w,/static/6a12a57cfee815305dfb43a1b4278c1d/fbd9f/dispatch-simple-logo.webp 578w" sizes="(min-width: 289px) 289px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 289px) 289px, 100vw" decoding="async" loading="lazy" data-src="/static/6a12a57cfee815305dfb43a1b4278c1d/b43a3/dispatch-simple-logo.png" data-srcset="/static/6a12a57cfee815305dfb43a1b4278c1d/c27cd/dispatch-simple-logo.png 72w,/static/6a12a57cfee815305dfb43a1b4278c1d/6b3ce/dispatch-simple-logo.png 145w,/static/6a12a57cfee815305dfb43a1b4278c1d/b43a3/dispatch-simple-logo.png 289w,/static/6a12a57cfee815305dfb43a1b4278c1d/e6e74/dispatch-simple-logo.png 578w" alt="Dispatch Newsletter"/></picture><noscript><picture><source type="image/webp" srcSet="/static/6a12a57cfee815305dfb43a1b4278c1d/f23fd/dispatch-simple-logo.webp 72w,/static/6a12a57cfee815305dfb43a1b4278c1d/069fc/dispatch-simple-logo.webp 145w,/static/6a12a57cfee815305dfb43a1b4278c1d/d562f/dispatch-simple-logo.webp 289w,/static/6a12a57cfee815305dfb43a1b4278c1d/fbd9f/dispatch-simple-logo.webp 578w" sizes="(min-width: 289px) 289px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 289px) 289px, 100vw" decoding="async" loading="lazy" src="/static/6a12a57cfee815305dfb43a1b4278c1d/b43a3/dispatch-simple-logo.png" srcSet="/static/6a12a57cfee815305dfb43a1b4278c1d/c27cd/dispatch-simple-logo.png 72w,/static/6a12a57cfee815305dfb43a1b4278c1d/6b3ce/dispatch-simple-logo.png 145w,/static/6a12a
957cfee815305dfb43a1b4278c1d/b43a3/dispatch-simple-logo.png 289w,/static/6a12a57cfee815305dfb43a1b4278c1d/e6e74/dispatch-simple-logo.png 578w" alt="Dispatch Newsletter"/></picture></noscript>
9<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
9</div></div><div class="jss47 jss69">Join <!-- -->thousands of<!-- --> Android developers getting the most entertaining & insightful Jetpack Compose newsletter</div><div class="jss48"><div class="jss49 jss70"><div class="jss50 jss71"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 2L2 7L12 12L22 7L12 2Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2 17L12 22L22 17" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2 12L12 17L22 12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></div><div class="jss51"><div class="jss52 jss72">Curated Insights</div><div class="jss53 jss73">Digest in 5 minutes or less</div></div></div><div class="jss49 jss70"><div class="jss50 jss71"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 2H6C5.46957 2 4.96086 2.21071 4.58579 2.58579C4.21071 2.96086 4 3.46957 4 4V20C4 20.5304 4.21071 21.0391 4.58579 21.4142C4.96086 21.7893 5.46957 22 6 22H18C18.5304 22 19.0391 21.7893 19.4142 21.4142C19.7893 21.0391 20 20.5304 20 20V7.5L14.5 2Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><polyline points="14,2 14,8 20,8" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></polyline><path d="M12 18V12" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path><path d="M9 15L12 12L15 15" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></div><div class="jss51"><div class="jss52 jss72">Android Analysis</div><div class="jss53 jss73">Entertaining takes on happenings</div></div></div><div class="jss49 jss70"><div class="jss50 jss71"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2Z" stroke="currentColor" stroke-width="2"></path><path d="M12 16V12" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path><path d="M12 8H12.01" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg></div><div class="jss51"><div class="jss52 jss72">Insider Tips</div><div class="jss53 jss73">From top Android developers</div></div></div><div class="jss49 jss70"><div class="jss50 jss71"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></polygon></svg></div><div class="jss51"><div class="jss52 jss72">Hidden Gems</div><div class="jss53 jss73">You won't find elsewhere</div></div></div></div><div class="jss54"><div class="jss58">"</div><div class="jss55">"<!-- -->I truly love this newsletter â¤ï¸âð¥ Spot on content and I know there's a lot of effort that goes behind it. Great work!<!-- -->"</div><div class="jss56">â <!-- -->theapache64</div><div class="jss57">Staff Software Engineer @ Disney+ Hotstar</div></div><div class="jss59"><div class="jss60"><div class="MuiFormControl-root MuiTextField-root jss61"><div class="MuiInputBase-root MuiOutlinedInput-root jss62 MuiInputBase-formControl"><input type="text" aria-invalid="false" id="newsletter-row-email-address" placeholder="Enter your email" class="MuiInputBase-input MuiOutlinedInput-input"/><fieldset aria-hidden="true" style="padding-left:8px" class="jss76 MuiOutlinedInput-notchedOutline"><legend class="jss77" style="width:0.01px"><span>​</span></legend></fieldset></div></div><button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss63" tabindex="0" type="button"><span class="MuiButton-label">Subscribe</span></button></div></div><div class="jss65 jss74">Join thousands of Android devs who look forward to Dispatch every week</div></div></div></div></div></div></div><div class="jss7"><div class="MuiContainer-root jss80 MuiContainer-maxWidthLg"><div class="MuiGrid-root MuiGrid-container"><div class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-lg-6"><div class="jss83"><a href="/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained jss84"><div style="max-width:250px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='52.41935483870968' width='250' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAECAYAAABsgwTvAAAACXBIWXMAAALFAAACxQGJ1n/vAAAAsklEQVQY06XPPysEcACH8V95A16AgQxSQl04SY6cLv8mMelSCllEZKJ0g3K72WLxEgy6ycirsBuU0PejewsMz/o8PeVkZ6vaPj1uPm6Wgn9ROpfnvRc37Zf7u70V9H1/fc5iJgxjGvNJqhhFJck4xpJU0I/BJBMYKa2jelltDNReb+tNTP1QT7KVZAkNLKIrq6Eb2sAC1jCJOWxjuTy3znoeDvfL+/XV+tvB7tBH5+nPm7/h4tj+l0zvmQAAAABJRU5ErkJggg==" alt=""/><picture><source type="image/webp" data-srcset="/static/905fcda752a94183b2e00f8b72b0f4ba/526e8/JetpackComposeApp_Logo_Inverse.webp 62w,/static/905fcda752a94183b2e00f8b72b0f4ba/05169/JetpackComposeApp_Logo_Inverse.webp 124w,/static/905fcda752a94183b2e00f8b72b0f4ba/9bde1/JetpackComposeApp_Logo_Inverse.webp 248w,/static/905fcda752a94183b2e00f8b72b0f4ba/2bb23/JetpackComposeApp_Logo_Inverse.webp 500w" sizes="(min-width: 250px) 250px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 250px) 250px, 100vw" decoding="async" loading="lazy" data-src="/static/905fcda752a94183b2e00f8b72b0f4ba/0489d/JetpackComposeApp_Logo_Inverse.png" data-srcset="/static/905fcda752a94183b2e00f8b72b0f4ba/0969d/JetpackComposeApp_Logo_Inverse.png 62w,/static/905fcda752a94183b2e00f8b72b0f4ba/0ff59/JetpackComposeApp_Logo_Inverse.png 124w,/static/905fcda752a94183b2e00f8b72b0f4ba/0489d/JetpackComposeApp_Logo_Inverse.png 248w,/static/905fcda752a94183b2e00f8b72b0f4ba/5a174/JetpackComposeApp_Logo_Inverse.png 500w" alt="JetpackCompose.app Home"/></picture><noscript><picture><source type="image/webp" srcSet="/static/905fcda752a94183b2e00f8b72b0f4ba/526e8/JetpackComposeApp_Logo_Inverse.webp 62w,/static/905fcda752a94183b2e00f8b72b0f4ba/05169/JetpackComposeApp_Logo_Inverse.webp 124w,/static/905fcda752a94183b2e00f8b72b0f4ba/9bde1/JetpackComposeApp_Logo_Inverse.webp 248w,/static/905fcda752a94183b2e00f8b72b0f4ba/2bb23/JetpackComposeApp_Logo_Inverse.webp 500w" sizes="(min-width: 250px) 250px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 250px) 250px, 100vw" decoding="async" loading="lazy" src="/static/905fcda752a94183b2e00f8b72b0f4ba/0489d/JetpackComposeApp_Logo_Inverse.png" srcSet="/static/905fcda752a94183b2e00f8b72b0f4ba/0969d/JetpackComposeApp_Logo_Inverse.png 62w,/static/905fcda752a94183b2e00f8b72b0f4ba/0ff59/JetpackComposeApp_Logo_Inverse.png 124w,/static/905fcda752a94183b2e00f8b72b0f4ba/0489d/JetpackComposeApp_Logo_Inverse.png 248w,/static/905fcda752a94183b2e00f8b72b0f4ba/5a174/JetpackComposeApp_Logo_Inverse.png 500w" alt="JetpackCompose.app Home"/></picture></noscript>
9<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
9</div></a><div class="jss85">The #1 destination for all things Jetpack Compose ð¤ð±</div><div class="jss86"><div class="MuiFormControl-root MuiTextField-root jss87"><label class="MuiFormLabel-root MuiInputLabel-root jss89 MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined" data-shrink="false" for="footer-email-address" id="footer-email-address-label">Type your email</label><div class="MuiInputBase-root MuiOutlinedInput-root jss88 MuiInputBase-formControl"><input type="text" aria-invalid="false" id="footer-email-address" class="MuiInputBase-input MuiOutlinedInput-input"/><fieldset aria-hidden="true" class="jss76 MuiOutlinedInput-notchedOutline"><legend class="jss78"><span>Type your email</span></legend></fieldset></div></div><button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss90" tabindex="0" type="button"><span class="MuiButton-label">Subscribe</span></button></div></div></div><div class="MuiGrid-root jss95 MuiGrid-item MuiGrid-grid-xs-12"></div><div class="MuiGrid-root jss81 MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-lg-6"><div class="MuiGrid-root jss82 MuiGrid-container"><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/webinars">Dispatch Live</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/newsletter">Dispatch Newsletter</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/What-is-the-equivalent-of-X-in-Jetpack-Compose">Which Compose API?</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/compare-declarative-frameworks/JetpackCompose-vs-React-vs-SwiftUI">Compare Frameworks</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/compose-catalog">Compose Catalog</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/compose-catalog/submit">Submit a Library</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/snippets">Compose Code Snippets</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a aria-current="page" class="jss91" href="/articles">Articles</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/faq">FAQ's</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/quick-bites">Quick Bites</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a href="https://jetpackcompose.pallet.com/jobs" class="jss91" target="_blank">Jobs</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/supporters">Support Us</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/impact">Our Impact</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/privacy-policy">Privacy Policy</a></div><div class="MuiGrid-root jss94 MuiGrid-item MuiGrid-grid-xs-6 MuiGrid-grid-sm-6 MuiGrid-grid-lg-6"><a class="jss91" href="/sitemap">Sitemap</a></div></div></div><div class="MuiGrid-root jss81 MuiGrid-item MuiGrid-grid-xs-12"><div class="jss92">© <!-- -->2026<!-- --> All Rights Reserved | Made by<!-- --> <a href="https://vinaygaba.me" target="_blank" class="jss93">Vinay Gaba</a></div></div></div></div></div></div></main></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;
9border:0" aria-live="assertive" aria-atomic="true"></div></div>
vendor: 66 bytes, line 9
9<script async="" src="https://www.googletagmanager.com/gtag/js?id=
9G-9Q2WXTQ41M
vendor: 11 bytes, line 9
9"></script>
9<script> 10 11 function gaOptout(){document.cookie=disableStr+'=true; expires=Thu, 31 Dec 2099 23:59:59 UTC;path=/',window[disableStr]=!0}var gaProperty='G-9Q2WXTQ41M',disableStr='ga-disable-'+gaProperty;document.cookie.indexOf(disableStr+'=true')>-1&&(window[disableStr]=!0); 12 if(!(navigator.doNotTrack == "1" || window.doNotTrack == "1")) { 13 window.dataLayer = window.dataLayer || []; 14 function gtag(){window.dataLayer && window.dataLayer.push(arguments);} 15 gtag('js', new Date()); 16 17 gtag('config', 'G-9Q2WXTQ41M', {"anonymize_ip":true,"cookie_expires":0,"cookie_domain":"auto","cookie_flags":"SameSite=None;Secure","send_page_view":false}); 18 } 19 </script>
19<script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/articles";window.___webpackCompilationHash="7cc6195b4a3f2aa5aa66";/*]]>*/</script>
19<script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-581cfdf3599d5fc7e70b.js"],"app":["/app-bda9e6d9bb27307342bf.js"],"component---src-components-articles-article-post-tsx":["/component---src-components-articles-article-post-tsx-a0e5ee79d5446003e30e.js"],"component---src-components-articles-articles-tsx":["/component---src-components-articles-articles-tsx-0f6f3a05739b72e4f49a.js"],"component---src-components-catalog-component-preview-cards-section-tsx":["/component---src-components-catalog-component-preview-cards-section-tsx-81e5d4c7f0b650f0c445.js"],"component---src-components-catalog-library-detail-page-tsx":["/component---src-components-catalog-library-detail-page-tsx-1839818b38f8034c2d36.js"],"component---src-components-core-sitemap-tsx":["/component---src-components-core-sitemap-tsx-08317f1fcb92d3436a21.js"],"component---src-components-faq-faq-category-page-tsx":["/component---src-components-faq-faq-category-page-tsx-62582de44ffbe51d749f.js"],"component---src-components-ifttt-if-this-then-that-tsx":["/component---src-components-ifttt-if-this-then-that-tsx-7d53cbbcaa9b725ef2cc.js"],"component---src-components-ifttt-reverse-if-this-then-that-tsx":["/component---src-components-ifttt-reverse-if-this-then-that-tsx-f569bfe977805031b53c.js"],"component---src-components-impact-impact-page-tsx":["/component---src-components-impact-impact-page-tsx-8a453f04698c6bc688fc.js"],"component---src-components-landing-landing-screen-tsx":["/component---src-components-landing-landing-screen-tsx-5afc86e021360666f150.js"],"component---src-components-newsletter-subscribe-page-tsx":["/component---src-components-newsletter-subscribe-page-tsx-4441c40b309669886924.js"],"component---src-components-quickbites-quick-bites-tsx":["/component---src-components-quickbites-quick-bites-tsx-4945c1abbac87857271c.js"],"component---src-components-snippets-snippet-post-tsx":["/component---src-components-snippets-snippet-post-tsx-29857ba424e5698ce727.js"],"component---src-components-snippets-snippets-tsx":["/component---src-components-snippets-snippets-tsx-6005947f2a58722a8a70.js"],"component---src-pages-404-js":["/component---src-pages-404-js-b8b6dbc047609f0b0a33.js"],"component---src-pages-compose-catalog-submit-tsx":["/component---src-pages-compose-catalog-submit-tsx-227625bc0834c27f1f80.js"],"component---src-pages-jobs-index-tsx":["/component---src-pages-jobs-index-tsx-03ec72f6be21429ceada.js"],"component---src-pages-jobs-post-tsx":["/component---src-pages-jobs-post-tsx-ce3b8dc9c02729268b8e.js"],"component---src-pages-supporters-tsx":["/component---src-pages-supporters-tsx-f7e23bb37b6f9e6a6b73.js"],"component---src-tailwind-components-declarative-mapper-page-tsx":["/component---src-tailwind-components-declarative-mapper-page-tsx-b240d126fc2e78baf327.js"],"component---src-tailwind-components-faq-tsx":["/component---src-tailwind-components-faq-tsx-bf169708bc20d5565768.js"],"component---src-tailwind-components-legal-page-tsx":["/component---src-tailwind-components-legal-page-tsx-0b15f7f7fbc46e085d9a.js"],"component---src-tailwind-components-newsletters-tsx":["/component---src-tailwind-components-newsletters-tsx-c1492c9c92bdbd1f598c.js"],"component---src-tailwind-components-webinar-landing-page-tsx":["/component---src-tailwind-components-webinar-landing-page-tsx-9e9140ccd0f0107b8bda.js"],"component---src-tailwind-components-webinar-success-page-tsx":["/component---src-tailwind-components-webinar-success-page-tsx-cdb9fea4c2cc6637ee6d.js"],"component---src-tailwind-components-webinars-archive-tsx":["/component---src-tailwind-components-webinars-archive-tsx-8339f81fe8d2b25e0e10.js"]};/*]]>*/</script>
19<script src="/polyfill-581cfdf3599d5fc7e70b.js" nomodule=""></script>
19<script src="/app-bda9e6d9bb27307342bf.js" async=""></script>
19<script src="/framework-4a3a1f0b9b6777939ec3.js" async=""></script>
19<script src="/webpack-runtime-697d49be3c011df1eb91.js" async=""></script>
19</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.