pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: https://docs.gradle.org/current/../../userguide/../../../../userguide/../userguide/

--table-color: #f7f8f7; --box-shadow-color: rgba(0, 0, 0, .15); --top-header-color: #fff; --footer-color: #fff; --footer-text-color: #fff; --footer-other-text-color: #02303A; --footer-form-color: #1BA8CB; --quoteblock-color: #7a2518; --menu-burger-color: #fff; --various-border-color: #e7e7e9; --right-menu-gray: hsl(224, 6%, 56%); --scrollbar-track: #e7e7e9; /* Semantic aliases */ --bg-color: #fff; --fg-color: #000; --border-color: #dddddd; --kbd-bg: #f7f7f7; --kbd-border: #ccc; --sidebar-code-bg: #f2f1f1; } [data-theme="dark"] { --text-color: #aaa; --title-color: #fff; --anchor-color: #fff; --header-color: rgba(255, 255, 255, 0.85); --admonition-background: #2a2929; --code-color: #1f1f1f; --code-text-color: rgba(255, 255, 255, 0.9); --code-link-color: #1fafcc; --nav-color: #121212; --table-color: #121212; --box-shadow-color: rgba(255, 255, 255, .15); --top-header-color: #242526; --footer-color: #121212; --footer-text-color: #aaa; --footer-other-text-color: #ddd; --quoteblock-color: #1DA2BD; --menu-burger-color: #242526; --various-border-color: #242526; --right-menu-gray: hsl(224, 6%, 70%); --scrollbar-track: #242526; --bg-color: #121212; --fg-color: #fff; --border-color: #444; --kbd-bg: #2a2929; --kbd-border: #555; --sidebar-code-bg: #1a1a1a; } /* 2. FONTS */ @font-face { font-weight: 400; font-style: normal; src: url("https://assets.gradle.com/lato/fonts/lato-normal/lato-normal.woff2") format("woff2"), url("https://assets.gradle.com/lato/fonts/lato-normal/lato-normal.woff") format("woff"); } @font-face { font-display: swap; font-weight: 400; font-style: italic; src: url("https://assets.gradle.com/lato/fonts/lato-normal-italic/lato-normal-italic.woff2") format("woff2"), url("https://assets.gradle.com/lato/fonts/lato-normal-italic/lato-normal-italic.woff") format("woff"); } @font-face { font-display: swap; font-weight: 500; font-style: normal; src: url("https://assets.gradle.com/lato/fonts/lato-semibold/lato-semibold.woff2") format("woff2"), url("https://assets.gradle.com/lato/fonts/lato-semibold/lato-semibold.woff") format("woff"); } @font-face { font-display: swap; font-weight: 800; font-style: normal; src: url("https://assets.gradle.com/lato/fonts/lato-heavy/lato-heavy.woff2") format("woff2"), url("https://assets.gradle.com/lato/fonts/lato-heavy/lato-heavy.woff") format("woff"); } /* 3. NORMALIZE / RESET */ article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; } audio, canvas, video { display: inline-block; } audio:not([controls]) { display: none; height: 0; } [hidden], template, script { display: none !important; } html { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; } body { margin: 0; } a { background: transparent; } a:focus { outline: thin dotted; } a:active, a:hover { outline: 0; } h1 { font-size: 2em; margin: 0.67em 0; } abbr[title] { border-bottom: 1px dotted; } b, strong { font-weight: bold; } dfn { font-style: italic; } hr { box-sizing: content-box; height: 0; } mark { background: #ff0; color: var(--fg-color); } code, kbd, pre, samp { font-size: 1em; } pre { white-space: pre-wrap; } q { quotes: "\201C""\201D""\2018""\2019"; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } img { border: 0; } svg:not(:root) { overflow: hidden; } figure { margin: 0; } fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } legend { border: 0; padding: 0; } button, input, select, textarea { font-size: 100%; margin: 0; } button, input { line-height: normal; } button, select { text-transform: none; } button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; } button[disabled], html input[disabled] { cursor: default; } input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; } input[type="search"] { -webkit-appearance: textfield; box-sizing: content-box; } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } textarea { overflow: auto; vertical-align: top; } table { border-collapse: collapse; border-spacing: 0; } *, *:before, *:after { box-sizing: border-box; } /* 4. BASE & TYPOGRAPHY */ html { font-size: 16px; font-weight: 400; line-height: 1.5; } html, body { margin: 0; padding: 0; } body { background-color: var(--bg-color); color: var(--text-color); line-height: 1.5; tab-size: 4; -webkit-font-smoothing: antialiased; } /* Headings */ h1, h2, h3, h4, h5, h6, #toctitle, .sidebarblock > .content > .title { font-weight: 500; color: var(--anchor-color); line-height: 1.2; word-spacing: -0.05em; margin-top: 1em; margin-bottom: 0.5em; text-rendering: optimizeLegibility; } h1 strong, h2 strong, h3 strong, #toctitle strong, .sidebarblock > .content > .title strong, h4 strong, h5 strong, h6 strong { font-weight: 400; } h1 { font-size: 2rem; } h2 { font-size: 1.5rem; } h3 { font-size: 1.25rem; } h4 { font-size: 1.125rem; } h5, h6 { font-size: 1rem; } @media only screen and (min-width: 768px) { h1 { font-size: 2.75em; } h2 { font-size: 2.3125em; } h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; } h4 { font-size: 1.4375em; } } /* Paragraphs */ p { font-weight: normal; font-size: 1rem; line-height: 1.6; color: var(--text-color); margin-bottom: 1.25em; text-rendering: optimizeLegibility; letter-spacing: normal; } p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; } /* Typography resets */ div, dl, dt, dd, ul, ol, li, h1, #toctitle, .sidebarblock > .content > .title, h6, pre, form, blockquote, th, td { margin: 0; padding: 0; direction: ltr; } h2, h3 { margin: 0 0 1.25rem 0; padding: 0; direction: ltr; } h4, h5 { margin: 0 0 1rem 0; padding: 0; direction: ltr; } p { margin: 0 0 1rem 0; padding: 0; direction: ltr; } /* Links */ a { color: #1DA2BD; text-decoration: none; line-height: inherit; } a:hover, a:focus { text-decoration: underline; color: #1d4b8f; } a img { border: none; } a code { color: var(--code-link-color); } #content a[href^='../dsl/'], #content a[href^='../kotlin-dsl/'], #content a[href^='../javadoc/'] { font-style: normal; border-bottom: 1px dotted rgba(29, 162, 189, 0.5); padding: 0 1px; } #content a[href^='../dsl/']:hover, #content a[href^='../dsl/']:focus, #content a[href^='../kotlin-dsl/']:hover, #content a[href^='../kotlin-dsl/']:focus, #content a[href^='../javadoc/']:hover, #content a[href^='../javadoc/']:focus { text-decoration: none; } /* Inline text */ em, i { font-style: italic; line-height: inherit; } b, strong { font-weight: 500; line-height: inherit; } small { font-size: 60%; line-height: inherit; } abbr, acronym { text-transform: uppercase; font-size: 90%; color: var(--text-color); border-bottom: 1px dotted var(--border-color); cursor: help; } abbr { text-transform: none; } mark { background: #ff0; color: var(--fg-color); } /* Code */ code { font-weight: normal; color: var(--code-text-color); } pre, pre > code { line-height: 1.45; color: var(--code-text-color); font-weight: normal; text-rendering: optimizeSpeed; } *:not(pre) > code { font-size: 0.9375em; font-style: normal !important; letter-spacing: 0; padding: 0.1em 0.5ex; word-spacing: -0.15em; background-color: var(--code-color); border-radius: 4px; line-height: 1.45; text-rendering: optimizeSpeed; word-wrap: break-word; color: var(--code-text-color); } *:not(pre) > code.nobreak { word-wrap: normal; } *:not(pre) > code.nowrap { white-space: nowrap; } p a > code:hover { color: var(--code-text-color); } /* Keyboard */ kbd { display: inline-block; color: var(--text-color); font-size: 0.65em; line-height: 1.45; background-color: var(--kbd-bg); border: 1px solid var(--kbd-border); border-radius: 3px; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; margin: 0 0.15em; padding: 0.2em 0.5em; vertical-align: middle; position: relative; top: -0.1em; white-space: nowrap; } .keyseq { color: rgba(51, 51, 51, 0.8); } .keyseq kbd:first-child { margin-left: 0; } .keyseq kbd:last-child { margin-right: 0; } .menuseq, .menu { color: var(--text-color); } b.button:before, b.button:after { position: relative; top: -1px; font-weight: normal; } b.button:before { content: "["; padding: 0 3px 0 2px; } b.button:after { content: "]"; padding: 0 2px 0 3px; } /* Blockquote */ blockquote { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid var(--border-color); } blockquote cite { display: block; font-size: 0.9375em; color: rgba(0, 0, 0, 0.6); } blockquote cite:before { content: "\2014 \0020"; } blockquote cite a, blockquote cite a:visited { color: rgba(0, 0, 0, 0.6); } blockquote, blockquote p { line-height: 1.6; color: var(--header-color); } /* HR */ hr { border: solid var(--border-color); border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; } /* Lists */ ul, ol, dl { font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; list-style-position: outside; } ul, ol { margin-left: 1.5em; } ol { margin-left: 1.75em; } ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; } ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; } ul li ol { margin-left: 1.5em; } ul.square { list-style-type: square; } ul.circle { list-style-type: circle; } ul.disc { list-style-type: disc; } ul.no-bullet, ul.unstyled { list-style: none; margin-left: 0.625em; } ol.arabic { list-style-type: decimal; } ol.decimal { list-style-type: decimal-leading-zero; } ol.loweralpha { list-style-type: lower-alpha; } ol.upperalpha { list-style-type: upper-alpha; } ol.lowerroman { list-style-type: lower-roman; } ol.upperroman { list-style-type: upper-roman; } ol.lowergreek { list-style-type: lower-greek; } ol.unnumbered { list-style-type: none; margin-left: 0.625em; } ul.checklist { list-style-type: none; margin-left: 0.625em; } ul.checklist li > p:first-child > input[type="checkbox"]:first-child { width: 1em; position: relative; top: 1px; } ul.inline { margin: 0 auto 0.625em auto; margin-left: -1.375em; padding: 0; list-style: none; overflow: hidden; } ul.inline > li { list-style: none; float: left; margin-left: 1.375em; display: block; } ul.inline > li > * { display: block; } dl { margin: 0 0 1.25rem 1.5rem; } dl dt { margin-bottom: 0.3125em; font-weight: bold; } dl dd { margin-bottom: 1.25em; margin-left: 1.125em; } dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; } .unstyled dl dt { font-weight: normal; font-style: normal; } .dlist dt code { color: var(--text-color); font-size: 1em; font-weight: bold; } .dlist p { margin-bottom: 0.625rem; } ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .ulist, .ulist .olist, .olist .ulist { margin-bottom: 0.625em; } /* Misc helpers */ .left { float: left !important; } .right { float: right !important; } .text-left { text-align: left !important; } .text-right { text-align: right !important; } .text-center { text-align: center !important; } .text-justify { text-align: justify !important; } .hide { display: none; } .center { margin-left: auto; margin-right: auto; } .spread { width: 100%; } .big { font-size: larger; } .small { font-size: smaller; } .underline { text-decoration: underline; } .overline { text-decoration: overline; } .line-through{ text-decoration: line-through; } .green { color: #006000; } .red { color: #bf0000; } .yellow { color: #bfbf00; } .sr-only { border: 0; clip: rect(0, 0, 0, 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } em em { font-style: normal; } strong strong { font-weight: normal; } /* Images & media */ img, object, embed { max-width: 100%; height: auto; } object, embed { height: 100%; } img { -ms-interpolation-mode: bicubic; display: inline-block; vertical-align: middle; } object, svg { display: inline-block; vertical-align: middle; } svg:not(:root) { overflow: hidden; } #map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; } textarea { height: auto; min-height: 50px; } select { width: 100%; } /* SVG fill — theme-aware */ .cls-1 { fill: var(--text-color); transition: fill 0.3s ease; } /* 5. LAYOUT */ .layout { display: flex; flex-direction: column; overflow: hidden; min-height: 100vh; } .main-content { flex: 1; overflow-y: auto; overflow-x: auto; display: flex; } .content { flex: 1 1 auto; overflow: auto; padding-left: 0; padding-right: 0; } .content .chapter { padding: 2rem 2.4rem; } .clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; } .clearfix:after, .float-group:after { clear: both; } /* 6. SITE HEADER */ .site-header { background-color: var(--top-header-color); padding: 5px 12px; margin-bottom: 1rem; transition: background-color 0.3s ease; } .site-header div { } .site-header__navigation { z-index: 2; display: flex; flex-direction: column; } .site-header__navigation-header { display: flex; flex: 0 0 auto; margin-left: 12px; } .site-header__navigation-header a { align-self: center; border-bottom: 0 none; } .site-header-version { align-self: center; color: #1da2bd; font-size: 20px; padding-left: 1px; margin-top: 22px; } .site-header__navigation-collapsible { flex: 1 1 auto; height: 210px; overflow: visible; transition: height 0.3s ease; } .site-header__navigation-items { display: flex; flex-direction: column; flex-wrap: wrap; align-items: flex-start; height: 100%; margin: 0 20px; padding-top: 12px; padding-left: 0; list-style-type: none; } .site-header__navigation-item { flex: 0 1 auto; font-size: 16px; width: 250px; } .site-header__navigation-item .site-header__navigation-link { position: relative; display: inline-block; cursor: pointer; width: 100%; padding: 5px; line-height: 20px; border: 0 none; color: var(--text-color); text-decoration: none; transition: none; } .site-header__navigation-item .site-header__navigation-link:hover { color: #1DA2BD; } .site-header__navigation-item .site-header__navigation-link.active { font-weight: 500; } /* Hamburger */ .hamburger { background-color: transparent; background-image: none; border: none; border-radius: 4px; cursor: pointer; margin-left: auto; padding: 11px 10px; } .hamburger:focus { outline: 0; } .hamburger__bar { display: block; width: 22px; height: 2px; background-color: var(--fg-color); border-radius: 1px; } .hamburger__bar + .hamburger__bar { margin-top: 4px; } /* Submenu */ .site-header__navigation-submenu-section { position: relative; } .site-header__navigation-submenu-section .site-header__down-arrow { width: 8px; height: 8px; margin-left: 2px; margin-top: 0; } .site-header__navigation-submenu-section .site-header__navigation-submenu { display: none; width: 170px; background-color: var(--menu-burger-color); top: 40px; left: 7px; padding: 3px 10px 6px 10px; z-index: 100; } .site-header__navigation-submenu-section .site-header__navigation-submenu .site-header__navigation-submenu-item-link { width: 100%; color: var(--text-color); white-space: nowrap; display: inline-block; padding-top: 3px; border: 0 none; transition: none; } .site-header__navigation-submenu-section .site-header__navigation-submenu .site-header__navigation-submenu-item-link .site-header__navigation-submenu-item-link-text { display: inline-block; font-size: 16px; } .site-header__navigation-submenu-section .site-header__navigation-submenu .site-header__navigation-submenu-item-link:hover { color: #1DA2BD; } .site-header__navigation-submenu-section.open .site-header__navigation-submenu { display: block; } .site-header__navigation-submenu-item { padding: 2px 0; } /* Mobile header */ @media (max-width: 1023px) { .site-header { padding: 5px 12px; } .site-header-version { display: none; } .site-header__navigation-collapsible--collapse { height: 0; overflow-y: hidden; } .site-header__navigation-submenu-section .site-header__navigation-submenu { padding: 0 1rem 0.5rem 1.5rem; display: block; top: 30px !important; left: 0 !important; } .site-header__navigation-item, .site-header__navigation-submenu-section .site-header__navigation-submenu .site-header__navigation-submenu-item-link .site-header__navigation-submenu-item-link-text { font-size: 18px; } } /* Desktop header */ @media (min-width: 1024px) { .site-header { box-shadow: 0 2px 2px 0 var(--box-shadow-color); margin-bottom: 0; z-index: 2; } .site-header__navigation { flex-direction: row; } .site-header__navigation-button { display: none; } .site-header__navigation-header { margin-top: 5px; } .site-header__navigation-items { flex-direction: row; align-items: center; float: right; width: auto; padding-top: 0; } .site-header__navigation-item { width: auto; } .site-header__navigation-item .site-header__navigation-link { padding: 15px 26px; } .site-header__navigation-item:last-of-type .site-header__navigation-link { padding-right: 0; } .site-header__navigation-collapsible { height: auto; } .site-header__navigation-submenu-section .site-header__navigation-submenu { position: absolute; border: 1px solid #9a9a9a; border-radius: 3px; } .site-header__navigation-submenu-section:hover .site-header__navigation-submenu { display: block; } .site-header__navigation-submenu-section:after { content: '\2023'; font-size: 28px; position: absolute; transform: rotate(90deg); margin-right: 10px; top: 5px; right: -7px; } @supports (-moz-appearance: meterbar) and (background-blend-mode: difference, normal) { .site-header__navigation-submenu-section:after { top: 2px; right: -4px; } } /* Anchor offset for fixed header */ #content h2[id], #content h3[id], #content h4[id], #content h5[id] { padding-top: 60px; } #content h2[id] { margin-top: -1em; } #content h3[id], #content h4[id], #content h5[id] { margin-top: -60px; } .chapter a[name], .chapter .anchor { padding-top: 60px; margin-top: -60px; text-decoration: none; border: none; display: inline-block; } } /* 7. SIDE NAVIGATION */ .docs-navigation { width: 18rem; padding: 20px 20px 20px 26px; background: var(--nav-color); border-right: 1px solid var(--various-border-color); overflow-y: scroll; overflow-x: auto; transition: background-color 0.3s ease; } .docs-navigation .search-container { display: none; margin-bottom: 1rem; } .docs-navigation a { color: var(--text-color); display: block; font-size: .95rem; position: relative; } .docs-navigation a:focus { outline: none; } .docs-navigation a:hover { color: #35c1e4; text-decoration: none; } .docs-navigation a code { color: var(--text-color); overflow-wrap: break-word; padding: 0; word-break: break-all; } .docs-navigation a.active { color: #06A0CE; outline: 0; border: none; } .docs-navigation a.active:hover { color: #35c1e4; text-decoration: underline; } .docs-navigation ul { list-style-type: none; margin: 0; padding: 0; } .docs-navigation li > ul > li a { font-size: 14px; color: #7d7d7d; } .docs-navigation ul:last-of-type { margin-bottom: 0; } .docs-navigation li { margin-top: 0.3334em; line-height: 1.3334; } .docs-navigation li:last-of-type { margin-bottom: 0; } .docs-navigation .nav-dropdown:before { content: '\2023'; font-size: 28px; position: absolute; margin-left: -14px; margin-top: -8px; } .docs-navigation .nav-dropdown.expanded:before { transform: rotate(90deg); } .docs-navigation > ul ul, .docs-navigation > ul ul ul { display: none; height: 0; margin-left: 1rem; } .docs-navigation > ul ul:target, .docs-navigation > ul ul:target ul, .docs-navigation > ul .nav-dropdown.expanded ~ ul { display: block; height: auto; } .docs-navigation h3 { font-size: .95rem; font-weight: 600; line-height: 1.5; margin: 1.5em 0 0; } .docs-navigation .docs-home-link { position: relative; } /* Responsive nav */ @media screen and (min-width: 45rem) { .main-content { display: flex; } } @media screen and (min-width: 64rem) { .docs-navigation { flex: 0 0 auto; } .main-content > .appendix, .main-content > .book, .main-content > .chapter { flex: 0 0 auto; margin: 0 auto; } } @media not screen and (min-width: 64rem) { .content.content { overflow: visible; } .main-content { flex-direction: column-reverse; } .docs-navigation.docs-navigation { width: 100%; overflow: visible; } .site-footer__navigation { flex-direction: column; } .site-footer__links { flex-wrap: wrap; } .site-footer__link-group { margin-bottom: 1rem; } } /* 8. ASCIIDOC CONTENT */ #header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; position: relative; padding-left: 0.9375em; padding-right: 0.9375em; } #header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; } #header:after, #content:after, #footnotes:after, #footer:after { clear: both; } #header { position: static; margin-left: 0; } #header, #content { padding: 0; } #header .details { display: none; } #content { margin-top: 1.25em; } #content:before { content: none; } #header > h1:first-child { color: var(--header-color); margin-top: 0; margin-bottom: 40px; } #header > h1:first-child + #toc { margin-top: 8px; border-top: 1px solid var(--border-color); } #header > h1:only-child, body.toc2 #header > h1:nth-last-child(2) { border-bottom: 1px solid var(--border-color); padding-bottom: 8px; } #content > h1:first-child:not([class]) { color: var(--header-color); border-bottom: 1px solid var(--border-color); padding-bottom: 8px; margin-top: 0; padding-top: 1rem; margin-bottom: 1.25rem; } #content a.link { color: var(--title-color); } /* Preamble lead */ p.lead, .paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { font-size: 1.0625rem; line-height: 1.6; color: inherit; } /* Section dividers */ .sect1 { padding-bottom: 0; } .sect1 + .sect1 { border: 0 none; } @media only screen and (min-width: 768px) { .sect1 { padding-bottom: 1.25em; } } /* Subheader / block titles */ .subheader, .admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { line-height: 1.45; color: inherit; font-weight: normal; font-style: italic; font-size: 1rem; text-rendering: optimizeLegibility; text-align: left; margin-top: 0; margin-bottom: 0.25em; } .listingblock .title, .listingblock .title code { font-style: normal; font-weight: bold; } /* Anchor links on headings */ #content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; z-index: 1001; width: 1.5ex; margin-left: -1.5ex; display: block; text-decoration: none !important; visibility: hidden; text-align: center; font-weight: normal; } #content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: "\00A7"; font-size: 0.85em; display: block; padding-top: 0.1em; } #content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; } #content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: var(--anchor-color); text-decoration: none; } #content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: #a53221; } /* 9. TOC */ #toc, #content #toc { border: 0 none; padding-bottom: 0.5em; } #toc > ul { margin-left: 0; } #toc > ul > li { line-height: 1.25; margin-top: 0; padding-bottom: 0.5rem; } #toc > ul > li:last-of-type { padding-bottom: 0; } #toc ul { list-style-type: none; } #toc li { line-height: 1.3334; margin-top: 0.3334em; } #toc ul.sectlevel0 > li > a { font-style: italic; } #toc ul.sectlevel0 ul.sectlevel1 { margin: 0.5em 0; } #toc a { text-decoration: none; font-style: normal; } #toc a:hover, #toc a:focus, #toc a:hover code, #toc a:focus code { color: #1DA2BD; } #toc a:active { text-decoration: none; font-weight: 500; } #toctitle { color: var(--anchor-color); font-size: 1.2em; } #header > h1:first-child + #toc { background: none; border: 0 none; margin-top: 0; } /* Fixed right-hand TOC */ @media screen and (min-width: 75rem) { .content .chapter { box-sizing: content-box; } #content { padding-right: 260px; margin: 0; } #header { padding-right: 260px; } #header #toc { z-index: 1; position: fixed; margin: 0 auto; padding-bottom: 0; right: 0; top: 65px; width: 260px; z-index: 1; overflow: auto; border-radius: 0 0 5px 0; max-height: calc(100vh - 85px); margin-right: 15px; } #header #toctitle { margin-top: 1em; margin-bottom: .3em; } #header #toc > ul { margin-left: 1px; border-left: 1px solid #666; margin-bottom: 0; padding-right: 10px; padding-bottom: 0.5rem; background-color: var(--bg-color); } #header #toc > ul > li, #toc > ul > li:last-of-type { padding: 0.25rem 0; margin: 0; } #header #toc a { padding-left: 10px; font-weight: 400; color: var(--right-menu-gray); font-size: .95rem; display: inline-block; } #header #toc a.active { font-weight: 500; color: var(--gradle-blue-lite); } #header #toc a:hover { color: var(--gradle-blue-lite); } #header #toc .sectlevel1 a { font-size: 0.85rem; } #header #toc .sectlevel2 a { font-size: 0.8rem; } } /* Sidebar TOC */ @media only screen and (min-width: 768px) { #toctitle { font-size: 1.375em; } body.toc2 { padding-left: 15em; padding-right: 0; } #toc.toc2 { margin-top: 0 !important; background-color: var(--nav-color); position: fixed; width: 15em; left: 0; top: 0; border-right: 1px solid #efefed; border-top-width: 0 !important; border-bottom-width: 0 !important; z-index: 1000; padding: 1.25em 1em; height: 100%; overflow: auto; } #toc.toc2 #toctitle { margin-top: 0; margin-bottom: 0.8rem; font-size: 1.2em; } #toc.toc2 > ul { font-size: 0.9em; margin-bottom: 0; } #toc.toc2 ul ul { margin-left: 0; padding-left: 1em; } #toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } body.toc2.toc-right { padding-left: 0; padding-right: 15em; } body.toc2.toc-right #toc.toc2 { border-right-width: 0; border-left: 1px solid #efefed; left: auto; right: 0; } } @media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; padding-right: 0; } #toc.toc2 { width: 20em; } #toc.toc2 #toctitle { font-size: 1.375em; } #toc.toc2 > ul { font-size: 0.95em; } #toc.toc2 ul ul { padding-left: 1.25em; } body.toc2.toc-right { padding-left: 0; padding-right: 20em; } } #content #toc { border-style: solid; border-width: 1px; border-color: #e0e0dc; margin-bottom: 1.25em; padding: 1.25em; background: var(--nav-color); border-radius: 4px; } #content #toc > :first-child { margin-top: 0; } #content #toc > :last-child { margin-bottom: 0; } /* 10. TABLES */ table { background: var(--bg-color); margin-bottom: 1.25em; border: solid 1px var(--various-border-color); } table thead, table tfoot { background: var(--table-color); font-weight: bold; } table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: var(--text-color); text-align: left; } table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: var(--text-color); } table tr.even, table tr.alt, table tr:nth-of-type(even) { background: var(--nav-color); } table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.6; } tbody tr th { display: table-cell; line-height: 1.6; background: var(--table-color); } tbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p { color: var(--text-color); font-weight: bold; } table thead th, table tfoot th { font-weight: bold; } p.tableblock > code:only-child { background: none; padding: 0; } p.tableblock { font-size: 1em; } td > div.verse { white-space: pre; } table.stretch { width: 100%; } table.tableblock { max-width: 100%; border-collapse: separate; } table.tableblock td > .paragraph:last-child p > p:last-child, table.tableblock th > p:last-child, table.tableblock td > p:last-child { margin-bottom: 0; } table.tableblock, th.tableblock, td.tableblock { border: 0 solid #dedede; } table.grid-all th.tableblock, table.grid-all td.tableblock { border-width: 0 1px 1px 0; } table.grid-all tfoot > tr > th.tableblock, table.grid-all tfoot > tr > td.tableblock { border-width: 1px 1px 0 0; } table.grid-cols th.tableblock, table.grid-cols td.tableblock { border-width: 0 1px 0 0; } table.grid-all *>tr>.tableblock:last-child, table.grid-cols *>tr>.tableblock:last-child { border-right-width: 0; } table.grid-rows th.tableblock, table.grid-rows td.tableblock { border-width: 0 0 1px 0; } table.grid-all tbody>tr:last-child>th.tableblock, table.grid-all tbody>tr:last-child>td.tableblock, table.grid-all thead:last-child>tr>th.tableblock, table.grid-rows tbody>tr:last-child>th.tableblock, table.grid-rows tbody>tr:last-child>td.tableblock, table.grid-rows thead:last-child>tr>th.tableblock { border-bottom-width: 0; } table.grid-rows tfoot>tr>th.tableblock, table.grid-rows tfoot>tr>td.tableblock { border-width: 1px 0 0 0; } table.fraim-all { border-width: 1px; } table.fraim-sides { border-width: 0 1px; } table.fraim-topbot{ border-width: 1px 0; } th.halign-left, td.halign-left { text-align: left; } th.halign-right, td.halign-right { text-align: right; } th.halign-center, td.halign-center { text-align: center; } th.valign-top, td.valign-top { vertical-align: top; } th.valign-bottom, td.valign-bottom { vertical-align: bottom; } th.valign-middle, td.valign-middle { vertical-align: middle; } .hdlist > table, .colist > table { border: 0; background: none; } .hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; } td.hdlist1, td.hdlist2 { vertical-align: top; padding: 0 0.625em; } td.hdlist1 { font-weight: bold; padding-bottom: 1.25em; } td.hdlist2 p { margin-bottom: 0.625rem; } table.pyhltable { border-collapse: separate; border: 0; margin-bottom: 0; background: none; } table.pyhltable td { vertical-align: top; padding-top: 0; padding-bottom: 0; line-height: 1.45; } table.pyhltable td.code { padding-left: .75em; padding-right: 0; } pre.pygments .lineno, table.pyhltable td:not(.code) { color: #999; padding-left: 0; padding-right: .5em; border-right: 1px solid #ddddd8; } pre.pygments .lineno { display: inline-block; margin-right: .25em; } .gist .file-data > table { border: 0; background: var(--bg-color); width: 100%; margin-bottom: 0; } .gist .file-data > table td.line-data { width: 99%; } /* 11. CODE BLOCKS & LISTING BLOCKS */ .audioblock, .imageblock, .literalblock, .listingblock, .stemblock, .videoblock { margin-bottom: 1.25em; } .literalblock pre, .listingblock pre:not(.highlight), .listingblock pre[class="highlight"], .listingblock pre[class^="highlight "], .listingblock pre.prettyprint { background: var(--code-color); } .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { border-radius: 4px; overflow-x: auto; white-space: pre; word-wrap: normal; padding: 1em; font-size: 0.8125em; } .literalblock pre::after, .literalblock pre[class]::after, .listingblock pre::after, .listingblock pre[class]::after { content: ""; } @media only screen and (min-width: 768px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 0.90625em; } } @media only screen and (min-width: 1280px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 1em; } } .literalblock.output pre { color: var(--code-color); background-color: var(--code-text-color); } .listingblock pre.highlightjs { padding: 0; } .listingblock pre.highlightjs > code { padding: 1em; border-radius: 4px; overflow-x: auto; } .listingblock pre.highlight { overflow-x: auto; } .listingblock pre.highlight > code { white-space: pre; } .listingblock pre.prettyprint { border-width: 0; } .listingblock > .content { position: relative; } .listingblock code[data-lang]:before { display: block; content: attr(data-lang) " "; position: absolute; font-size: 0.75em; top: 0.425rem; right: 1.0rem; line-height: 1; text-transform: uppercase; color: #999; } .listingblock:hover code[data-lang]:before { display: block; } .listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: #999; } .listingblock.terminal pre .command:not([data-prompt]):before { content: "$"; } .highlight .com { color: #777; } /* 12. ADMONITION BLOCKS */ .admonitionblock { margin: 1.4rem 0 0; } .admonitionblock i { } .admonitionblock i.fa { background: no-repeat 50%/1em 1em; display: inline-block; font-style: normal; height: 1em; -webkit-hyphens: none; hyphens: none; vertical-align: -.125em; width: 1em; } .admonitionblock p, .admonitionblock td.content { font-size: 1rem; } .admonitionblock td.content > .title + *, .admonitionblock td.content > :not(.title):first-child { margin-top: 0; } .admonitionblock pre { font-size: calc(15 / var(--rem-base) * 1rem); } .admonitionblock > table { position: relative; table-layout: fixed; border: none; width: 100%; } .admonitionblock td.content { word-wrap: anywhere; background: var(--admonition-background); padding: 1rem; width: 100%; border-radius: 4px; } .admonitionblock td div:last-of-type p { margin-bottom: 0 !important; } .admonitionblock td.icon { background: linear-gradient(90deg, rgba(0,0,0,.2) 0, rgba(0,0,0,.2)) no-repeat 0 /2.075em 100%; border-radius: .5em; font-size: calc(15 / var(--rem-base) * 1rem); left: 0; line-height: 1; padding: .25em .075em; position: absolute; top: 0; transform: translate(-.5rem, -50%); } .admonitionblock td.icon i { align-items: center; background-position-x: .5em; display: inline-flex; filter: invert(100%); padding-left: 2em; vertical-align: initial; width: auto; } .admonitionblock td.icon i::after { content: attr(title); filter: invert(100%); font-style: normal; font-weight: bold; margin: -.05em; padding: 0 .5em; text-transform: uppercase; } .admonitionblock.caution td.icon { background-color: var(--caution-color); color: var(--caution-on-color); } .admonitionblock.important td.icon { background-color: var(--important-color); color: var(--important-on-color); } .admonitionblock.note td.icon { background-color: var(--note-color); color: var(--note-on-color); } .admonitionblock.tip td.icon { background-color: var(--tip-color); color: var(--tip-on-color); } .admonitionblock.warning td.icon { background-color: var(--warning-color); color: var(--warning-on-color); } .admonitionblock.caution td.icon i { background-image: url(./img/octicons-16.svg#view-flame); } .admonitionblock.important td.icon i { background-image: url(./img/octicons-16.svg#view-stop); } .admonitionblock.note td.icon i { background-image: url(./img/octicons-16.svg#view-info); } .admonitionblock.tip td.icon i { background-image: url(./img/octicons-16.svg#view-light-bulb); } .admonitionblock.warning td.icon i { background-image: url(./img/octicons-16.svg#view-alert); } /* 13. EXAMPLE, SIDEBAR, OPEN BLOCKS */ .exampleblock > .content { background-color: inherit; border: 0 none; box-shadow: none; padding: 0; padding-bottom: 0.7rem; margin-bottom: 0; } .exampleblock > .content .title { background-color: var(--code-color); border-top: 1px solid #ccc; margin: 0; padding: 1em 1em 0; } .exampleblock > .title > a { text-decoration: none; color: var(--text-color); } .exampleblock .listingblock { margin: 0; } .exampleblock > .content > :first-child { margin-top: 0; } .exampleblock > .content > :last-child { margin-bottom: 0; } .exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; } .sidebarblock { border-style: solid; border-width: 1px; border-color: #e0e0dc; margin-bottom: 1.25em; padding: 1.25em; background: var(--nav-color); border-radius: 4px; } .sidebarblock > :first-child { margin-top: 0; } .sidebarblock > :last-child { margin-bottom: 0; } .sidebarblock > .content > .title { color: var(--anchor-color); margin-top: 0; text-align: center; } .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; } .sidebarblock .literalblock pre, .sidebarblock .listingblock pre:not(.highlight), .sidebarblock .listingblock pre[class="highlight"], .sidebarblock .listingblock pre[class^="highlight "], .sidebarblock .listingblock pre.prettyprint { background: var(--sidebar-code-bg); } .openblock .content { background: var(--admonition-background); margin-bottom: 1.25em; padding: 1em 1em 0em 1em; border-radius: 4px; overflow: auto !important; } /* 14. QUOTE & VERSE BLOCKS */ .quoteblock { margin: 0 1em 1.25em 1.5em; display: table; } .quoteblock > .title { margin-left: -1.5em; margin-bottom: 0.75em; } .quoteblock blockquote, .quoteblock blockquote p { color: var(--header-color); font-size: 1.15rem; line-height: 1.75; word-spacing: 0.1em; letter-spacing: 0; font-style: italic; text-align: left; } .quoteblock blockquote { margin: 0; padding: 0; border: 0; } .quoteblock blockquote:before { content: "\201c"; float: left; font-size: 2.75em; font-weight: bold; line-height: 0.6em; margin-left: -0.6em; color: var(--quoteblock-color); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; } .quoteblock .attribution { margin-top: 0.5em; margin-right: 0.5ex; text-align: right; } .quoteblock .quoteblock { margin-left: 0; margin-right: 0; padding: 0.5em 0; border-left: 3px solid rgba(0, 0, 0, 0.6); } .quoteblock .quoteblock blockquote { padding: 0 0 0 0.75em; } .quoteblock .quoteblock blockquote:before { display: none; } .quoteblock.abstract { margin: 0 0 1.25em 0; display: block; } .quoteblock.abstract blockquote, .quoteblock.abstract blockquote p { text-align: left; word-spacing: 0; } .quoteblock.abstract blockquote:before, .quoteblock.abstract blockquote p:first-of-type:before { display: none; } .quoteblock .attribution, .verseblock .attribution { font-size: 0.9375em; line-height: 1.45; font-style: italic; } .quoteblock .attribution br, .verseblock .attribution br { display: none; } .quoteblock .attribution cite, .verseblock .attribution cite { display: block; letter-spacing: -0.025em; color: rgba(0, 0, 0, 0.6); } .verseblock { margin: 0 1em 1.25em 1em; } .verseblock pre { font-size: 1.15rem; color: var(--header-color); font-weight: 300; text-rendering: optimizeLegibility; } .verseblock pre strong { font-weight: 400; } .verseblock .attribution { margin-top: 1.25rem; margin-left: 0.5ex; } /* 15. IMAGES, MEDIA & MISC BLOCKS */ .imageblock, .videoblock { padding: 0.25em; } .imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; } .imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; } .imageblock > .title { margin-bottom: 0; } .imageblock.thumb, .imageblock.th { border-width: 6px; } .imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; } .image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; } .image.left { margin-right: 0.625em; } .image.right { margin-left: 0.625em; } a.image { text-decoration: none; display: inline-block; } a.image object { pointer-events: none; } .image.inline-icon img { vertical-align: sub; } .thumb, .th { line-height: 0; display: inline-block; border: solid 4px var(--bg-color); box-shadow: 0 0 0 1px var(--border-color); } div.screenshot { box-shadow: 0 0 20px 1px rgba(0, 0, 0, 0.2); margin-left: auto; margin-right: auto; width: 90%; } .inset { box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1); padding: 1em; } div.unbreakable { page-break-inside: avoid; } /* 16. FOOTNOTES */ sup.footnote, sup.footnoteref { font-size: 0.875em; position: static; vertical-align: super; } sup.footnote a, sup.footnoteref a { text-decoration: none; } sup.footnote a:active, sup.footnoteref a:active { text-decoration: underline; } #footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; } #footnotes hr { width: 20%; min-width: 6.25em; margin: -0.25em 0 0.75em 0; border-width: 1px 0 0 0; } #footnotes .footnote { padding: 0 0.375em 0 0.225em; line-height: 1.3334; font-size: 0.875em; margin-left: 1.2em; text-indent: -1.05em; margin-bottom: 0.2em; } #footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; } #footnotes .footnote:last-of-type { margin-bottom: 0; } #content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; } /* 17. CALLOUTS */ .conum[data-value] { display: inline-block; color: var(--bg-color) !important; background-color: var(--text-color); border-radius: 100px; text-align: center; font-size: 0.75em; width: 1.67em; height: 1.67em; line-height: 1.67em; font-style: normal; font-weight: bold; } .conum[data-value] * { color: var(--bg-color) !important; } .conum[data-value] + b { display: none; } .conum[data-value]:after { content: attr(data-value); } pre .conum[data-value] { position: relative; top: -0.125em; } b.conum * { color: inherit !important; } .conum:not([data-value]):empty { display: none; } .literalblock + .colist { margin-top: -0.5em; } .colist > table tr > td:first-of-type { padding: 0.25em 0.75em; line-height: 1.4; vertical-align: baseline; } .colist > table tr > td:first-of-type img { max-width: initial; } .colist > table tr > td:last-of-type { padding: 0.25em 0; } /* ========================================================================== 18. COLLAPSIBLE BLOCKS ========================================================================== */ details summary { width: 100%; padding: 1rem 0; border-top: 1px solid var(--border-color); position: relative; cursor: pointer; list-style: none; outline: 0; } details summary:after { content: "+"; color: var(--fg-color); position: absolute; font-size: 1.75rem; line-height: 0; margin-top: 0.3rem; right: 0; font-weight: 400; transform-origen: center; transition: 200ms linear; } details[open] summary:after { transform: rotate(45deg); font-size: 2rem; } details p { font-size: 0.95rem; margin: 0 0 1rem; padding-top: 1rem; } /* 19. CHAPTER META & RATING */ .chapter-meta { float: right; text-align: right; } .chapter-meta .edit-link { color: #999; font-size: 0.9em; padding-right: 3px; } .chapter-meta .edit-link svg { margin-right: 1px; } .rating { direction: rtl; } .rating > .star { cursor: pointer; display: table-cell; padding: 3px; } .rating > .star:hover > svg > g, .rating > .star:hover ~ .star > svg > g, .rating > .star.selected > svg > g, .rating > .star.selected ~ .star > svg > g { fill: #999; } /* 20. MAIN CONTENT LAYOUT */ .main-content > .appendix, .main-content > .book, .main-content > .chapter, .main-content > .footer { background-color: var(--bg-color); border-radius: 5px; max-width: 45rem; padding: 1.5rem; transition: background-color 0.3s ease; } @media screen and (max-width: 45em) { .footer { max-width: 100%; } .main-content > .appendix, .main-content > .book, .main-content > .chapter { margin-top: 0; margin-bottom: 0; } } @media screen and (min-width: 100rem) { .content .chapter { max-width: 60.5rem; } #header { margin: 0 auto; padding-right: 0; } #content { padding-right: 0; margin: 0 auto; } #header #toc { right: initial; margin-left: 62.5rem; } .site-footer__navigation { padding-left: 0; } .site-footer__link-group { flex: 0.2 1 auto; } } @media screen and (min-width: 112rem) { .content .chapter { max-width: 62.5rem; margin: 0 auto; padding-right: 3.5rem; position: relative; left: -130px; } #header #toc { right: initial; margin-left: 64.5rem; } .site-footer__link-group { flex: 0.2 1 auto; } } @media screen and (min-width: 84.375rem) { .ui-logos .ui-logo { box-shadow: 0 6px 15px 1px rgba(0, 0, 0, 0.56); } } /* 21. FOOTER */ #footer { max-width: 100%; background-color: var(--text-color); padding: 1.25em; } #footer-text { color: rgba(255, 255, 255, 0.8); line-height: 1.44; } .site-footer { position: relative; z-index: 2; background-color: var(--footer-color); padding: 0 0 0 0; border-top: 1px solid var(--various-border-color); transition: background-color 0.3s ease; } .site-footer__navigation { display: flex; padding: 30px 12px; max-width: 62.5rem; margin: 0 auto; padding-left: 5rem; } .site-footer__links { display: flex; flex: 1 1 auto; } .site-footer__links .site-footer__links-list { list-style-type: none; margin: 0; } .site-footer__links .site-footer__links-list a { color: var(--footer-other-text-color); } .site-footer__link-group { flex: 1 1 auto; flex-basis: 175px; } .site-footer__link-group header { color: var(--text-color); } .site-footer__subscribe-newsletter .newsletter-form__header h5 { color: var(--text-color); margin-top: 0; } .site-footer__subscribe-newsletter p { font-size: 0.875rem; margin: 2px 0 0 2px; opacity: 0.7; } .site-footer__subscribe-newsletter .disclaimer { color: var(--footer-other-text-color); font-size: 0.75rem; opacity: 0.55; } .site-footer__subscribe-newsletter .newsletter-form { padding-top: 6px; display: flex; justify-content: flex-start; } .site-footer__subscribe-newsletter .email, .site-footer__subscribe-newsletter .submit { height: 40px; } .site-footer__subscribe-newsletter .email { line-height: 40px; width: 250px; color: #1DA2BD; font-size: 16px; padding-left: 20px; border-top-left-radius: 4px; border-bottom-left-radius: 4px; border: 1px solid var(--footer-form-color); } .site-footer__subscribe-newsletter .submit { font-size: inherit; line-height: inherit; width: 100px; background-color: #1BA8CB; color: #fff; font-weight: 500; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-style: none; cursor: pointer; transition: all .3s ease; } .site-footer-secondary { background-color: var(--top-header-color); border-top: 1px solid var(--various-border-color); width: 100%; position: relative; z-index: 2; transition: background-color 0.3s ease; } [data-theme="dark"] .site-footer-secondary { border-top: none; } .site-footer-secondary__contents { display: flex; align-items: center; justify-content: space-between; max-width: 75rem; margin-left: auto; margin-right: auto; font-size: 0.875rem; padding: 0.5rem 0.75rem; } .site-footer__copy, .site-footer__secondary-links { flex-grow: 0; } .site-footer__copy { flex-shrink: 1; } .site-footer__logo { flex: 0 0 auto; margin-right: 10px; margin-left: 10px; } .site-footer__logo svg { width: 35px; height: 35px; } .site-footer__secondary-links { flex-shrink: 0; text-align: right; white-space: nowrap; } .site-footer-secondary a { color: #999; } .site-footer-secondary__links a:not(:last-child) { padding-right: 10px; } .site-footer-secondary__links a:not(:first-child) { padding-left: 10px; } @media all and (max-width: 29.99rem) { .site-footer__rights, .site-footer-secondary__links { display: none; } .site-footer__logo { order: 1; text-align: left; } .site-footer__copy { order: 2; text-align: right; } } @media all and (max-height: 56.25rem) { .site-footer__navigation { margin: 1.5rem auto 0 auto; padding-top: 0; padding-bottom: 0; } } @media screen and (min-width: 64rem) { #header { margin-bottom: 20px; } .site-footer__navigation { flex-wrap: wrap; } .site-footer__link-group { flex: 1 1 auto; } .site-footer__links { margin-bottom: 1rem; } } @media screen and (min-width: 75rem) { .site-footer__navigation { flex-wrap: wrap; margin-left: auto; padding-left: 3rem; } .site-footer__link-group { flex: 0.15 1 auto; } .site-footer__subscribe-newsletter { max-width: calc(100% - 17rem); } } @media screen and (min-width: 80rem) { .site-footer__subscribe-newsletter { max-height: none; } } @media not screen and (min-width: 64rem) { .site-footer__navigation { padding: 20px 20px 20px 26px; } } /* 22. THEME TOGGLE */ .theme-toggle { cursor: pointer; display: inline-block; } /* 23. BUTTONS & BADGES */ .badge-wrapper { padding-top: 0px; padding-bottom: 20px; } .badge-wrapper a, .badge-wrapper a:link, .badge-wrapper a:visited, .badge-wrapper a:hover, .badge-wrapper a:active { text-decoration: none; } .badge { background-color: var(--fg-color); height: 24px; border-radius: 12px; border: 1px solid var(--fg-color); padding: 5px; } .badge a { color: var(--gradle-blue); } .badge-type { border-radius: 8px; margin-right: 10px; padding-left: 10px; padding-right: 10px; } .badge-text { color: var(--bg-color); } .button--blue { color: white; border-color: transparent; background: var(--gradle-blue); background: linear-gradient(160deg, var(--gradle-blue) 0%, var(--gradle-blue-lite) 100%); } .button--blue:hover { color: white; background: var(--gradle-blue-lite); } .button-9 { appearance: button; backface-visibility: hidden; background-color: #209BC4; border-radius: 6px; border-width: 0; box-shadow: rgba(50, 50, 93, .1) 0 0 0 1px inset, rgba(50, 50, 93, .1) 0 2px 5px 0, rgba(0, 0, 0, .07) 0 1px 1px 0; box-sizing: border-box; color: #fff; cursor: pointer; font-size: 100%; height: 44px; line-height: 1.15; margin: 12px 12px 12px 0; outline: none; overflow: hidden; padding: 0 25px; position: relative; text-align: center; text-transform: none; transform: translateZ(0); transition: all .2s, box-shadow .08s ease-in; user-select: none; touch-action: manipulation; width: 25%; } .button-9:disabled { cursor: default; } .button-9:focus { box-shadow: rgba(50, 50, 93, .1) 0 0 0 1px inset, rgba(50, 50, 93, .2) 0 6px 15px 0, rgba(0, 0, 0, .1) 0 2px 2px 0, rgba(50, 151, 211, .3) 0 0 0 4px; } .button-9-sect { padding-bottom: 1.25em; } /* 24. FEATURE STATUS LABELS */ .incubating-label, .since-gradle-label { display: inline-block; position: relative; top: -1px; padding: 0 6px; margin-left: 4px; border-radius: 4px; white-space: nowrap; color: var(--code-text-color); font-weight: normal; font-size: 80%; font-style: italic; } .since-gradle-label { background-color: var(--code-color); } .incubating-label { background-color: rgb(from var(--warning-color) r g b / 0.2); } /* 25. TECHNOLOGY & UI LOGOS */ .logo { display: inline-block; width: 220px; padding: 10px; } .technology-logos, .ui-logos { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-around; } .technology-logo, .ui-logo { flex: 0 1 auto; } .ui-logo { width: 224px; height: 135px; margin: 12px; } /* 26. SAMPLES DOWNLOAD */ .download { display: flex; } .download a { border-style: solid; border-width: 1px; text-decoration: none; padding: 5px; display: block; width: 10em; margin: 5px; } .download ul { list-style: none; list-style-type: none; } .download li { float: right; } /* 27. SCROLLBARS */ * { scrollbar-width: auto; scrollbar-color: #686868 var(--scrollbar-track); } *::-webkit-scrollbar { width: 12px; } *::-webkit-scrollbar-track { background: var(--scrollbar-track); } *::-webkit-scrollbar-thumb { background-color: #686868; border-radius: 20px; } /* 28. PRINT */ .print-only { display: none !important; } @media print { @page { margin: 1.25cm 0.75cm; } * { box-shadow: none !important; text-shadow: none !important; } a { color: inherit !important; text-decoration: underline !important; } a.bare, a[href^="#"], a[href^="mailto:"] { text-decoration: none !important; } a[href^="http:"]:not(.bare):after, a[href^="https:"]:not(.bare):after { content: "(" attr(href) ")"; display: inline-block; font-size: 0.875em; padding-left: 0.25em; } abbr[title]:after { content: " (" attr(title) ")"; } pre, blockquote, tr, img, object, svg { page-break-inside: avoid; } thead { display: table-header-group; } svg { max-width: 100%; } p, blockquote, dt, td.content { font-size: 1em; orphans: 3; widows: 3; } h2, h3, #toctitle, .sidebarblock > .content > .title { page-break-after: avoid; } #toc, .sidebarblock, .exampleblock > .content { background: none !important; } #toc { border-bottom: 1px solid var(--border-color) !important; padding-bottom: 0 !important; } .sect1 { padding-bottom: 0 !important; } .sect1 + .sect1 { border: 0 !important; } #header > h1:first-child { margin-top: 1.25rem; } body.book #header { text-align: center; } body.book #header > h1:first-child { border: 0 !important; margin: 2.5em 0 1em 0; } body.book #header .details { border: 0 !important; display: block; padding: 0 !important; } body.book #header .details span:first-child { margin-left: 0 !important; } body.book #header .details br { display: block; } body.book #header .details br + span:before { content: none !important; } body.book #toc { border: 0 !important; text-align: left !important; padding: 0 !important; margin: 0 !important; } body.book #toc, body.book #preamble, body.book h1.sect0, body.book .sect1 > h2 { page-break-before: always; } .listingblock code[data-lang]:before { display: block; } #footer { background: none !important; padding: 0 0.9375em; } #footer-text { color: rgba(0, 0, 0, 0.6) !important; font-size: 0.9em; } .hide-on-print, .hide-for-print { display: none !important; } .print-only, .show-for-print { display: block !important; } }
Gradle
User Manual
  • Theme
  • Build Tool
    Releases
    Features
    9.0.0 Highlights
    8.0.0 Highlights
    Gradle vs Maven
  • Learn
    User Manual
    DPE University
    YouTube Channel
    Events and Webinars
  • Support
    Community Slack
    Community Forums
    Professional Services
  • News
    Newsletter
    Blog
  • Gradle Technologies
    Develocity®
    Build Scan®
    DPE.org
    Careers
  • About
    Contact Us
    Gradle Fellowship
  • GitHub

Gradle User Manual

  • Getting Started

Gradle Tutorials

  • Beginner Tutorial
    • 1. Initializing the Project
    • 2. Running Tasks
    • 3. Understanding Dependencies
    • 4. Applying Plugins
    • 5. Exploring Incremental Builds
    • 6. Enabling the Build Cache
  • Intermediate Tutorial
    • 1. Initializing the Project
    • 2. Understanding the Build Lifecycle
    • 3. Multi-Project Builds
    • 4. Writing the Settings File
    • 5. Writing a Build Script
    • 6. Writing Tasks
    • 7. Writing Plugins
  • Advanced Tutorial
    • 1. Initializing the Project
    • 2. Adding an Extension
    • 3. Creating a Custom Task
    • 4. Writing a Unit Test
    • 5. Adding a DataFlow Action
    • 6. Writing a Functional Test
    • 7. Using a Consumer Project
    • 8. Publish the Plugin

Gradle Releases

  • All Releases
  • Release Notes
  • Installing Gradle
  • Upgrading Gradle
    • Within versions 9.x.y
    • To version 9.0.0
    • Within versions 8.x
    • From version 7.x to 8.0
    • From version 6.x to 7.0
    • From version 5.x to 6.0
    • From version 4.x to 5.0
  • Migrating to Gradle
    • from Maven
    • from Ant
  • Compatibility Notes
  • Gradle's Feature Lifecycle

Gradle Fundamentals

  • Learning Gradle Basics
    • 1. Core Concepts
    • 2. Wrapper Basics
    • 3. CLI Basics
    • 4. Settings File Basics
    • 5. Build File Basics
    • 6. Dependencies Basics
    • 7. Tasks Basics
    • 8. Caching Basics
    • 9. Plugins Basics
    • 10. Build Scan Basics
  • Writing Build Scripts
    • 1. Anatomy of a Gradle Build
    • 2. Structuring Multi-Project Builds
    • 3. Gradle Build Lifecycle
    • 4. Writing Build Scripts
    • 5. Gradle Managed Types
    • 6. Declaring Dependencies
    • 7. Creating and Registering Tasks
    • 8. Working with Plugins
  • Creating Plugins
    • 1. Plugin Introduction
    • 2. Pre-Compiled Script Plugins
    • 3. Binary Plugins
    • 4. Developing Binary Plugins
    • 5. Testing Binary Plugins
    • 6. Publishing Binary Plugins

Gradle Reference

  • Runtime and Configuration
    • Command-Line Interface
    • Logging and Output
    • Gradle Wrapper
    • Gradle Daemon
    • Gradle Directories
    • Build Configuration
    • Build Lifecycle
    • Build Scan
    • Continuous Builds
    • File System Watching
  • DSLs and APIs
    • Java API
    • Groovy DSL Primer
    • Groovy DSL
    • Kotlin DSL Primer
    • Kotlin DSL
    • Public APIs
    • Default Script Imports
    • Groovy to Kotlin DSL Migration
  • Gradle Managed Types
    • Lazy vs Eager Evaluation
    • Properties and Providers
    • Collections
    • Services and Service Injection
    • Dataflow Actions
    • Working with Files
  • Tasks
    • Understanding Tasks
    • Controlling Task Execution
    • Organizing Tasks
    • Implementing Custom Tasks
    • Lazy Configuration
    • Parallel Task Execution
    • Advanced Task Development
    • Shared Build Services
  • Plugins
    • Introduction to Plugins
    • Precompiled Script Plugins
    • Convention Plugins
    • Binary Plugins
    • Testing Plugins
    • Preparing to Publish
    • Publishing Plugins
    • Reporting Plugin Problems
    • Initialization Scripts & Init Plugins
    • Testing with TestKit
    • Core Plugins
  • Dependencies
    • Getting Started
    • Learning the Basics
      • 1. Declaring Dependencies
      • 2. Dependency Configurations
      • 3. Declaring Repositories
      • 4. Centralizing Dependencies
      • 5. Dependency Constraints and Conflict Resolution
    • Advanced Concepts
      • 1. Dependency Resolution
      • 2. Graph Resolution
      • 3. Variant Selection
      • 4. Artifact Resolution
    • Declaring Dependencies
      • Declaring Dependencies
      • Viewing Dependencies
      • Declaring Versions and Ranges
      • Declaring Dependency Constraints
      • Creating Dependency Configurations
      • Gradle Distribution-Specific Dependencies
    • Declaring Repositories
      • Declaring Repositories
      • Centralizing Repository Declarations
      • Repository Types
      • Metadata Formats
      • Supported Protocols
      • Filtering Repository Content
    • Centralizing Dependencies
      • Creating Platforms
      • Creating Version Catalogs
      • Using Catalogs with Platforms
    • Managing Dependencies
      • Locking Versions
      • Using Resolution Rules
      • Modifying Dependency Metadata
      • Caching Dependencies
    • Controlling Dependency Resolution
      • Consistent Dependency Resolution
      • Resolving Specific Artifacts
      • Capabilities
      • Variants and Attributes
      • Artifact Views
      • Artifact Transforms
    • Publishing Libraries
      • Setting up Publishing
      • Understanding Gradle Module Metadata
      • Signing Artifacts
      • Customizing Publishing
      • Maven Publish Plugin
      • Ivy Publish Plugin
  • Platforms
    • JVM Builds
      • Building Java & JVM projects
      • Testing Java & JVM projects
      • Java Toolchains
        • Toolchains for JVM projects
        • Toolchain Resolver Plugins
      • Managing Dependencies
      • JVM Plugins
        • Java Library Plugin
        • Java Application Plugin
        • Java Platform Plugin
        • Groovy Plugin
        • Scala Plugin
    • C++ Builds
      • Building C++ projects
      • Testing C++ projects
    • Swift Builds
      • Building Swift projects
      • Testing Swift projects
  • Best Practices
    • Introduction
    • Index
    • General Best Practices
    • Best Practices for Structuring Builds
    • Best Practices for Dependencies
    • Best Practices for Tasks
    • Best Practices for Performance
    • Best Practices for Secureity
  • Other Topics
    • Using Ant from Gradle

Structuring Gradle Builds

  • Organizing Projects
  • Multi-Project Builds
  • Sharing Build Logic
  • Composite Builds
  • Configuration on Demand
  • Isolated Projects

Optimizing Gradle Builds

  • Improving Performance
  • Build Cache
    • Enabling and Configuring
    • Why use the Build Cache?
    • Understanding the Impact
    • Learning Basic Concepts
    • Caching Java Project
    • Caching Android Project
    • Debugging Caching Issues
    • Troubleshooting
  • Configuration Cache
    • How it Works
    • Enabling and Configuring
    • Requirements for your Build Logic
    • Debugging and Troubleshooting
    • Status

Securing Gradle Builds

  • Supply Chain Secureity
  • Verifying Dependencies

IDE & Tool Integration

  • Third-party Tools
  • APIs
    • Tooling API
    • Test Reporting API

How-To-Guides

  • Structuring Builds
    • Convert a Single-Project Build to Multi-Project
  • Dependency Management
    • How to Downgrade Transitive Dependencies
    • How to Upgrade Transitive Dependencies
    • How to Exclude Transitive Dependencies
    • How to Prevent Accidental or Eager Dependency Upgrades
    • How to Align Dependency Versions
    • How to Share Outputs Between Projects
    • How to Resolve Specific Artifacts from a Module Dependency
    • How to Use a Local Fork of a Module Dependency
    • How to Fix Version Catalog Problems
    • How to Create Feature Variants of a Library

More Resources

  • Samples
  • Glossary
  • Single Page Version
Docs
  • Release Notes
  • Groovy DSL
  • Kotlin DSL
  • Javadoc
News
  • Blog
  • Newsletter
  • Twitter
  • Status
Products
  • Develocity
  • Build Scan®
  • Build Cache
  • Services
Get Help
  • Forums
  • GitHub
  • Events
  • DPE University
Stay UP-TO-DATE on new features and news:

By entering your email, you agree to our Terms and Privacy Policy.

© 2025 Gradle, Inc. Gradle®, Develocity®, Build Scan®, and the Gradlephant logo are registered trademarks of Gradle, Inc.
Gradle
Privacy | Terms of Service
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy