/*  *  IMPORTANT: This CSS file is NOT licensed under an open source license.  *  Copyright (c) Sundell Sp. z o.o. 2019-2025.  *  Uses the Source Sans Pro font, Copyright 2010-2018 Adobe, license: https://github.com/adobe-fonts/source-sans-pro/blob/release/LICENSE.md.  *  Uses the Source Code Pro font, Copyright 2010, 2012 Adobe Systems Incorporated, license: https://github.com/adobe-fonts/source-code-pro/blob/master/LICENSE.md.  */  * { margin: 0; padding: 0; box-sizing: border-box; } /* Fonts */ @font-face { font-family: "Main"; src: url(/fonts/SourceSansPro-Regular.ttf); } @font-face { font-family: "Main"; src: url(/fonts/SourceSansPro-Bold.ttf); font-weight: bold; } @font-face { font-family: "Code"; src: url(/fonts/SourceCodePro-Regular.ttf); } html { background-color: #fff; } body { color: #000; font-family: "Main"; font-size: 16px; -webkit-text-size-adjust: 100%; } /* High-level */ .wrapper { max-width: 900px; margin-left: auto; margin-right: auto; padding: 30px 40px 0 40px; text-align: center; } .page { font-size: 1.05em; text-align: left; } .float-container > * { float: left; } .float-container::after { display: block; content: ""; clear: both; } .mobile { display: none; } .inline-block { display: inline-block; } /* Header */ header { position: relative; background: linear-gradient(to bottom, #ff644e, #cb3018); color: #fff; line-height: 1.5em; padding: 0 20px; } header .wrapper { padding: 25px 0 20px 0; } header a { display: inline-block; } header p a { text-decoration: underline; } header .logo { width: 500px; max-width: 80%; margin-bottom: 6px; } header nav { display: inline-block; background-color: #fff; border-radius: 10px; margin-top: 18px; overflow: hidden; } header nav li { display: inline-block; } header nav a { display: block; color: #cb3018; padding: 0 10px; line-height: 30px; } header nav a:hover, header nav li.selected a { color: #fff; background-color: #cb3018; } header nav .search a { background-image: url(/images/search.svg); background-repeat: no-repeat; background-size: 65% 65%; background-position: center center; width: 34px; color: transparent !important; user-select: none; } header nav .search a:hover, header nav .search.selected a, .search .search-box input[type="submit"] { background-image: url('data:image/svg+xml,%3Csvg width="38" height="38" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Crect fill="%23FFF" transform="rotate(-45 9 29.5)" x="-1" y="27" width="20" height="5" rx="2.5"/%3E%3Ccircle stroke="%23FFF" stroke-width="5" cx="23" cy="15" r="12"/%3E%3C/g%3E%3C/svg%3E'); } /* Lists */ ul { list-style-type: none; margin-block-start: 0; margin-block-end: 0; } .item-list.grid { margin-top: 20px; margin-bottom: 20px; } .item-list > li, .feed > li { margin-top: 20px; background-color: #f3f3f3; padding: 12px 14px; border-radius: 15px; overflow: hidden; } .feed > li, .index .item-list.trailing { margin-top: 30px; } .feed > li:first-child, .v3 .feed li.recommendations { margin-top: 20px; } .item-list > li > a { display: block; width: 100%; padding: 12px 14px; border-radius: 15px; } .item-list > li > a:hover { background-color: #ddd; } .item-list.grid > li { margin-top: 0; } .item-list.grid.latest > li, .item-list.grid.featured > li, .related-content .item-list > li { padding: 0; } .item-list article h1 { font-size: 1.5em; margin-bottom: 12px; max-width: inherit; } .item-list article h1 a:hover, .feed article h1 a:hover { color: #cb3018; } .item-list.grid article h1 { font-size: 1.3em; line-height: 1.2em; margin-bottom: 0; } .item-list.grid article p { font-size: 0.9em; } .item-list.grid article .tags { margin-top: 10px; font-size: 0.9em; } .item-list.grid article.podcast .tags { margin-top: 12px; } .item-list article .metadata { margin: 0; } .item-list article .metadata.date-only { margin-bottom: 10px; } .item-list article p { margin-top: 5px; } .item-list article .type { display: block; padding-left: 18px; background-repeat: no-repeat; background-size: auto 14px; background-position-y: center; font-size: 13px; text-transform: uppercase; color: #555; margin-bottom: 10px; margin-top: 2px; padding-top: 1px; line-height: 15px; } .item-list .article .type, .item-list .archive .type { background-image: url(/images/article-gray.svg); } .item-list .podcast .type { background-image: url(/images/podcast-gray.svg); } .item-list .tips .type, .item-list .special .type { background-image: url(/images/tips-gray.svg); padding-left: 19px; } .item-list .basics .type { background-image: url(/images/basics-gray.svg); padding-left: 20px; } .item-list .video .type { background-image: url(/images/video-gray.svg); } .item-list .newsletter .type { background-image: url(/images/newsletter-gray.svg); padding-left: 20px; } .item-list .link .type { background-image: url(/images/link-gray.svg); padding-left: 19px; } .item-list .qa .type { background-image: url(/images/question-gray.svg); } /* Headings */ h1, article.page h1 { font-size: 2em; margin-bottom: 10px; } /* Links */ a { text-decoration: none; color: inherit; } .browse-all, .browse-all a { color: #e6241e; font-weight: bold; float: right; line-height: 1em; } .browse-all a { float: none; margin-left: 20px; } a.browse-all:hover, .browse-all a:hover { text-decoration: underline; } /* Index */ .index .section-header { line-height: 1.8em; } .index .section-header h2 { display: inline-block; float: left; font-size: 1.7em; padding-left: 33px; background-repeat: no-repeat; background-size: auto 80%; background-position-y: center; margin-top: 7px; } .index .browse-all { margin-top: 1.1em; } .index .grid .browse-all.latest { display: block; text-align: right; } .index h2.latest { background-image: url(/images/latest-black.svg); } .index h2.article { background-image: url(/images/article-black.svg); } .index h2.podcast { background-image: url(/images/podcast-black.svg); } .index h2.tips, .index h2.featured { background-image: url(/images/tips-black.svg); } .index h2.video { background-image: url(/images/video-black.svg); } .index h2.basics { background-image: url(/images/basics-black.svg); } .index .right-title-container { display: block; } .index .right-title-container h2 { float: right; } .index .item-list.grid article .date { display: block; font-size: 0.9em; margin-bottom: 5px; } .index .item-list.latest.compact { margin-bottom: 15px; } .index .item-list.latest:not(.compact) { margin-top: 10px; } .index .item-list.latest h1.small, .index .item-list.featured h1.small { font-size: 1.2em; } .index .item-list.latest h1.large { font-size: 1.4em; } .index .item-list.quick-links { margin-top: 0; grid-template-columns: repeat(4, 1fr); } .index .item-list.quick-links > li { padding: 0; font-weight: bold; } .index .item-list.quick-links a { display: flex; align-items: center; } .index .quick-links a > span { display: inline-block; padding-left: 23px; background-repeat: no-repeat; background-size: 16px 16px; background-position-y: center; vertical-align: middle; margin: 0 auto; } .index .quick-links .rss span { background-image: url(/images/rss-black.svg); } .index .quick-links .browse-tags span { background-image: url(/images/tag-black.svg); } .index .quick-links .sponsorship span { background-image: url(/images/heart-black.svg); } .index .quick-links .qa span { background-image: url(/images/question-black.svg); } /* Overviews */ .overview .description p { line-height: 1.5em; } .overview .description a { text-decoration: underline; } .overview .description .subscribe a { text-decoration: none; margin: 3px 1px 3px 2px; } .overview .description p:first-child { margin-top: 20px; } .overview .description { margin-bottom: 30px; } .overview .item-list.grid article .date { display: block; margin-top: 3px; } /* Tag lists */ .all-tags .description { margin: 20px 0; } .all-tags .description a { text-decoration: underline; } .all-tags .tags li { margin-top: 18px; margin-right: 18px; font-size: 1.1em; } .all-tags .featured li { padding: 0; } .all-tags .featured li a { padding: 15px; } .all-tags .featured li .tag { font-size: 1.1em; margin-bottom: 10px; } .tag-items .header { line-height: 2.5em; } .tag-items .header .tag { display: inline-block; color: #fff; border-radius: 15px; padding: 2px 7px; margin: 3px 0; } .tag-items .browse-all { margin-top: 1.5em; } .tag-items .item-list { margin-top: 20px; } /* Sponsors */ .supporter { display: block; position: relative; margin-top: 30px; margin-bottom: 22px; border-radius: 8px; border: 2px solid #078076; padding: 10px 10px 8px 12px; text-decoration: none; } .supporter::before { content: "Sponsor"; position: absolute; top: -11px; left: 18px; line-height: 20px; padding: 0 3px; background-color: #fff; color: #078076; font-weight: bold; text-transform: uppercase; font-size: 12px; } .supporter.padded-image img, .content .supporter.padded-image img, .v3 .index .supporter.padded-image img { margin-right: 6px; } .supporter.short-text img, .content .supporter.short-text img { max-height: 112px; } .supporter.small-image img, .content .supporter.small-image img { max-height: 96px; } .supporter.image-border img { border: 1px solid #ebebeb; } .content .supporter { margin-top: 28px; } .supporter .name { text-decoration: underline; } .supporter p, .content .supporter p, .discover .content .supporter p { float: none; margin-top: 0; font-size: 16px; line-height: 23px; } a.supporter, .content a.supporter { text-decoration: none; } .supporter p.prefix, .content .supporter p.prefix { opacity: 0.7; margin-bottom: 12px; font-size: 0.8em; line-height: 1.4; } .supporter img, .content .supporter img { float: left; margin: 2px 16px 20px 0; height: auto; max-height: 138px; border-radius: 5px; } .content .supporter img.mobile { display: none; } .supporter.compact, .content .supporter.compact { margin-top: 18px; } .supporter.compact.short-text img, .content .supporter.compact.short-text img { max-height: 42px; } .supporter.compact img, .content .supporter.compact img { max-height: 88px; margin-bottom: 10px; } .supporter-header { color: #078076; text-align: center; font-size: 0.9em; font-weight: bold; } .supporter-footer { position: relative; top: -16px; color: #078076; font-size: 0.8em; display: block; text-align: center; } .supporter-footer:hover { text-decoration: underline; } .top-bar { display: block; background: #A0301F; text-align: center; color: #FFF; padding-top: 6px; padding-bottom: 2px; font-weight: bold; } .top-bar img { height: 30px; margin-right: 9px; } .top-bar p { line-height: 30px; } /* Grid */ .grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 15px; } .grid.compact { grid-template-columns: repeat(3, 1fr); } .grid > * { display: flex; } /* Articles */ article h1 { font-size: 2.5em; margin-bottom: 15px; line-height: 1.2em; max-width: 95%; } article h1.smaller { font-size: 2.3em; } article h2, .discover .content h2 { font-size: 1.5em; margin: 25px 0 20px 0; } article h3 { font-size: 1.2em; margin-top: 20px; } article .metadata { margin-bottom: 23px; } article .date { color: #555; } article p, .discover .content p { margin-top: 20px; font-size: 1.05em; line-height: 1.5; } article .recommendation { display: inline-block; border-radius: 7px; color: #fff; padding: 7px 7px 7px 33px; font-size: 0.9em; } article p.info, blockquote p, .sponsorship .content > ul, .services .content > ul, article .archive-notice { position: relative; background-color: #efefef; padding: 10px 10px 10px 15px; border-top-right-radius: 7px; border-bottom-right-radius: 7px; border-left: 4px solid #ff644e; } article .archive-notice { margin-bottom: 20px; border-radius: 7px; border-left: none; } article .archive-notice p { margin-top: 0; } article .archive-notice a { text-decoration: underline; } /* Content */ .content a, .content a code { text-decoration: underline; } .content h2 a, .content h2 a code { text-decoration: none; } .content ul { list-style-type: disc; margin-top: 20px; padding-left: 20px; } .content > ul { font-size: 1.05em; line-height: 1.5em; } .content ul li { margin-top: 10px; } .content ul ul { margin-top: 0; } .content ul.compact li { margin-top: 5px; } .content img { display: block; max-width: 100%; margin: 20px auto 0 auto; } .content img.compact { display: inline-block; } .rounded-images .content img { border-radius: 12px; } /* Code */ code { font-family: "Code", monospace; } article p code, article li code, .discover .content code { background-color: #e2e2e2; display: inline-block; padding: 0 5px; border-radius: 8px; font-size: 0.9em; margin: 1px; line-break: anywhere; } article p code.inline, article li code.inline { display: inline; background-color: inherit; padding: 0; } pre { margin-top: 20px; } pre code { display: block; background-color: #1a1a1a; padding: 15px 20px; border-radius: 12px; color: #a9bcbc; line-height: 1.4em; font-size: 0.95em; overflow-x: auto; white-space: pre; -webkit-overflow-scrolling: touch; } pre code .s-keyword { color: #e83b8e; } pre code .s-type { color: #8281ca; } pre code .s-call { color: #348fe5; } pre code .s-property { color: #21ab9d; } pre code .s-number { color: #db6f57; } pre code .s-string { color: #fa641e; } pre code .s-comment { color: #6b8a94; } pre code .s-dotAccess { color: #92b300; } pre code .s-preprocessing { color: #b68a00; } pre code .highlight { display: inline-block; padding: 0 4px 2px 4px; border: 1px solid #546AFF; border-radius: 5px; background-color: #1A1721; margin-left: -5px; } pre code .highlight.shifted { margin-left: 0; } /* Code previews */ .code-preview { position: relative; z-index: 1; } .code-preview a { display: block; font-family: "Main"; font-size: 0.8em; position: absolute; top: 30px; right: 10px; text-transform: uppercase; text-decoration: none; color: #ddd; padding: 2px 5px; border-radius: 5px; background: #000; cursor: default; } .code-preview img { display: none; position: absolute; top: 5px; right: 0; max-width: 212px; border: 1px solid #0a0a0a; border-radius: 10px; } .code-preview a:hover img { display: block; } /* This hack is required since Firefox isn't able to render Source Code Pro */ @supports (-moz-appearance:none) { code { font-family: monospace; } pre code .highlight { padding-bottom: 1px; } pre code .highlight-block { padding-bottom: 0; } } /* Tags */ .tags { display: inline-block; margin-right: 5px; } .tags li, .all-tags .featured .tag { display: inline-block; margin-right: 5px; padding: 3px 6px; font-size: 0.85em; border-radius: 8px; color: #fff; margin-bottom: 7px; } .tags .variant-a, .tag.variant-a { background-color: #ca4a44; } .tags .variant-b, .tag.variant-b { background-color: #497d97; } .tags .variant-c, .tag.variant-c { background-color: #3b7e87; } .tags .variant-d, .tag.variant-d { background-color: #388466; } .tags .variant-e, .tag.variant-e { background-color: #54549c; } .tags .swift-version { background-color: #b8402e } .tags .qa { background-color: #000; color: #fff; } /* Related content */ .related-content { background-color: #f3f3f3; border-radius: 15px; padding: 20px; margin-top: 35px; } .tips .related-content, .qa .related-content { margin-top: 28px; } .related-content h2 { margin: 0; } .related-content .item-list { margin-bottom: 0; } .related-content .item-list > li { background-color: #e2e2e2; } .related-content .item-list article { padding: 5px; } .related-content .browse-all { margin-top: 0.7em; } /* Subscribe */ .subscribe { margin-top: 10px; } .subscribe .schedule { color: #cb3018; } .subscribe .schedule::after { content: ". "; } .subscribe a, .podcast-players a { display: inline-block; background-color: #f3f3f3; padding: 2px 7px 2px 31px; border-radius: 7px; background-repeat: no-repeat; background-size: auto 70%; background-position: 5px center; } .subscribe a.rss, .podcast-players a.rss { background-image: url(/images/rss-black.svg); } .subscribe a.newsletter { background-image: url(/images/newsletter-black.svg); } .subscribe a.youTube, .actions .youTube a, .quick-links .youTube span { background-image: url(/images/video-black.svg); } .subscribe a.twitter { background-image: url(/images/twitter-black.svg); } /* Basics */ .tags .basics, .recommendation.basics { background-color: hsl(121, 40%, 30%); background-image: url(/images/basics-white.svg); background-repeat: no-repeat; background-position: 7px center; background-size: 20px; } .tags .basics { padding-left: 24px; background-size: 14px; background-position: 6px center; } /* Podcast */ .item .podcast h1 { margin-bottom: 0; } .item .podcast .metadata { margin-top: 14px; margin-bottom: 26px; } .item .podcast .guest, .item .conference { display: block; font-size: 0.7em; font-weight: bold; line-height: 1.3em; } .podcast.section-overview .item-list .guest, .section-overview .item-list .conference { display: inline; font-size: 1em; } .item-list:not(.grid) .podcast .guest::before, .item-list:not(.grid) .conference::before { content: ","; } .item-list.grid .podcast .guest, .item-list.grid .conference { display: block; font-size: 0.8em; line-height: 1.2em; margin-top: 2px; margin-bottom: 0; } .item-list.grid.compact .podcast .guest, .item-list.grid.compact .conference { margin-top: 4px; } .podcast a.apple-podcasts { background-image: url(/images/apple-podcasts.png); } .podcast a.overcast { background-image: url(/images/overcast.svg); } .podcast a.castro { background-image: url(/images/castro.svg); } .podcast a.pocketcasts { background-image: url(/images/pocketcasts.svg); } .podcast .actions { margin-top: 30px; } /* Audio */ .audio-box { background-color: #e0e0e0; border-radius: 15px; padding: 12px 10px 5px 10px; margin-bottom: 25px; } .audio-box .podcast-players { margin-top: 7px; line-height: 1.5em; text-align: center; } .audio-box .podcast-players a { background-color: #eff1f2; margin-right: 8px; margin-bottom: 7px; } audio { width: 100%; height: 42px; } /* Actions */ .actions { margin-top: 25px; line-height: 22px; } .actions li { margin-top: 10px; } .actions a { display: inline-block; font-weight: bold; background-size: 22px 22px; background-repeat: no-repeat; padding-left: 30px; } .actions a:hover { text-decoration: underline; } .actions .download a { background-image: url(/images/download-black.svg); } .actions .share a { background-image: url(/images/twitter-black.svg); } .actions .newsletter a { background-image: url(/images/newsletter-black.svg); } /* Newsletter */ .newsletter .signup { background-color: #f3f3f3; padding: 15px; border-radius: 15px; margin-top: 20px; } .newsletter .signup input { font-family: "Main"; font-size: 1em; border-radius: 7px; } .newsletter .signup input[type="email"] { padding: 3px; border: 1px solid #ddd; margin: 0 5px; } .newsletter .signup input[type="submit"] { -webkit-appearance: none; padding: 4px 7px; border: none; background-color: #e6241e; color: #fff; } .newsletter .mailchimp { font-size: 0.8em; color: #666; } .item .newsletter .content a { color: #e6241e; } .item .newsletter .content h2 a { color: inherit; } /* Search */ .search form input:focus { outline-offset: -2px; } .search .search-box { display: inline-block; position: relative; border: none; margin-bottom: 15px; } .search .search-box input { font-family: Main; font-size: 1.3em; padding-top: 0.3em; padding-bottom: 0.3em; max-width: 300px; } .search .search-box input[type="text"] { border: none; border-collapse: collapse; border-radius: 12px; background-color: #f3f3f3; padding-left: 0.5em; padding-right: 2.4em; } .search .search-box input[type="submit"] { position: absolute; top: 0; right: 0; background-position: center; background-repeat: no-repeat; background-size: 50% 50%; background-color: #222; border: none; border-radius: 0; border-top-right-radius: 12px; border-bottom-right-radius: 12px; color: transparent; width: 1.9em; } /* Hack to customize the border radius in Chrome to match the native highlighting */ @media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) { .search .search-box input[type="text"] { border-radius: 4px; outline-offset: 0px; } .search .search-box input[type="submit"] { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } } .search .content p { margin-top: 7px; } .search .content p:first-child { margin-top: 20px; } .search .item-list li { padding: 0; } /* Videos */ article .video-player { position: relative; padding-top: 56.25%; /* 16:9 aspect ratio */ margin-bottom: 25px; } article .video-player iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .clip .actions { margin-top: 35px; } /* Pagination */ .pagination { position: fixed; display: inline-block; top: 50%; line-height: 40px; margin-top: -20px; background-size: 25px 25px; background-repeat: no-repeat; background-position: left center; padding: 0 10px 0 30px; width: 10px; height: 40px; overflow: hidden; color: #00000000; border-radius: 15px; } .pagination:hover { color: #222; background-color: #f7f7f7; width: auto; } .pagination.next { background-image: url(/images/chevron-left.svg); left: 7px; } .pagination.previous { background-image: url(/images/chevron-right.svg); right: 7px; padding-left: 10px; padding-right: 30px; background-position-x: right; } /* Sponsorship/services pages */ .sponsorship .button, .services .button { margin-top: 20px; line-height: 1.7em; } .sponsorship .content > ul, .services .content > ul { padding: 15px 25px 15px 35px; } .sponsorship .content > ul li:first-child, .services .content > ul li:first-child { margin-top: 0; } .sponsorship .packages .grid { padding-left: 0; } .sponsorship .packages .grid > li { background-color: #efefef; border-radius: 15px; padding: 20px 15px; margin: 0; } .sponsorship .packages h3, .sponsorship .packages .price { display: block; text-align: center; } .sponsorship .packages h3 { margin-top: 0; margin-bottom: 7px; } .sponsorship .packages .price { font-weight: bold; color: #e6241e; } .sponsorship a.email { padding: 2px 5px; border-radius: 5px; background-color: #efefef; } .sponsorship .sponsor-list { grid-template-columns: repeat(5, 1fr); text-align: center; padding: 0; } .sponsorship .sponsor-list li { border: 1px solid #555; border-radius: 7px; padding: 10px; margin: 0; } .sponsorship .sponsor-list li > div { width: 100%; } .sponsorship .sponsor-list img { display: inline-block; height: 32px; max-width: 90%; margin: 2px 0 0 0; } .sponsorship .sponsor-list .name { display: block; color: #555; line-height: 1.1em; margin-top: 3px; } .services .button { display: inline-block; text-decoration: none; padding: 0 6px; background-color: #e6241e; color: #fff; border-radius: 8px; } .services .john { max-width: 30%; float: left; margin: 0 20px 0 0; border-radius: 10px; width: 230px; } /* Q&A */ .section-overview.qa .tags li { margin-bottom: 2px; } /* Discover */ .discover .intro { padding: 20px; padding-bottom: 0; border-radius: 15px; color: #eee; } .discover .intro .icon { max-height: 92px; margin: 0 20px 20px 0; } .discover .intro .title-wrapper { float: none; margin-top: 1px; margin-bottom: 2px; } .discover .intro .logo { max-height: 20px; margin-left: 1px; margin-right: 10px; display: inline-block; } .discover .intro h1 { font-size: 30px; margin-bottom: 0; display: inline-block; } .discover .intro p { float: none; padding-bottom: 20px; margin-top: 0; line-height: 1.3; } .discover .content h2 { clear: both; } .discover .content .item-list { background-color: #f3f3f3; border-radius: 15px; padding: 10px; row-gap: 0; } .discover .content .inline { float: right; max-width: 45%; margin: 20px 0 0 20px; } .discover .content .inline.single-item { margin-bottom: 5px; } .discover .content .inline.vertical { margin-top: 0; margin-bottom: 20px; } .discover .content .inline .item-list, .discover .item-list.single-item { padding: 0; margin: 0; } .discover .content .tips .prefix { font-weight: bold; display: block; text-align: center; margin-bottom: 10px; color: #cb3018; } .discover .content .tips .item-list { padding: 10px; font-size: 0.8em; } .discover .content .tips .item-list .type, .discover .content .podcast-episodes .item-list .type { display: none; } .discover .content .item-list li { margin-top: 0; padding: 0; } .discover .content .item-list article { padding: 0; } .discover .content .item-list a { text-decoration: none; padding: 18px; padding-top: 14px; } .discover .content .item-list h1 { margin-bottom: 0; } .discover .content .item-list .type { line-height: 25px; } .discover .content .guest-image { height: 50px; display: inline-block; border-radius: 25px; margin: 0 8px 5px 0; } .discover .content .mobile { display: none; } .discover .content .supporter { margin-top: 25px; } .recommendation.discover { background-image: url(/images/discover-white.svg); background-repeat: no-repeat; background-position: 7px center; background-size: 20px; } .section-overview.discover li { margin-top: 20px; } .grid.item-list.discover-list { grid-template-columns: repeat(4, 1fr); } .ad-free .grid.item-list.discover-list { margin-top: 0 } .v3 .item-list.discover-list article { display: flex; flex-direction: row; padding: 0; } .item-list.discover-list article h1 { line-height: 24px; color: #eee; } .item-list.discover-list article img { width: 24px; height: 24px; margin-right: 10px; } /* Footer */ footer { margin-top: 20px; padding: 20px; text-align: center; color: #757575; line-height: 1.5em; } footer a { text-decoration: underline; } /* V3 */ .v3 .hstack { display: flex; flex-direction: row; } .v3 .hstack.inline { display: inline-flex; } .v3 .vstack { display: flex; flex-direction: column; justify-content: center; } .v3 .stretching { display: flex; } .v3 .stretching > * { flex-grow: 1; } .v3 .hstack > .vstack { flex-shrink: 0; } .v3 .supporter { background-color: #eaf3f2; padding: 18px; } .v3 .supporter:hover { background-color: #deeeed; } .v3 .supporter::before { background-color: #078076; color: #fff; line-height: 19px; border-radius: 6px; padding: 0 5px; } .v3 .supporter img, .v3 .supporter.compact img, .v3 .content .supporter.compact img { float: none; margin-bottom: 0; max-height: 40px; margin-top: 4px; } .v3 .index .supporter { margin: 0; } .v3 .index .supporter img { max-height: 44px; margin-right: 12px; margin-top: 2px; } .v3 .index .section-header:not(.no-top-margin) { margin-top: 20px; } .v3 .feed article, .v3 .item-list article { padding: 10px; } .v3 .feed article .supporter, .v3 .feed article .supporter-header { display: none; } .v3 .feed article .info { background-color: #dfdfdf; } .v3 .feed > li > article.podcast .guest::before { content: "," } .v3 .feed li.recommendations, .v3 .feed li.supporter-wrapper { background-color: unset; padding: 0; } .v3 .feed li.supporter-wrapper .supporter-header { margin-bottom: 20px; } .v3 .feed li.supporter-wrapper { overflow: visible; } .v3 .feed li.recommendations > ul { margin-top: 0; margin-bottom: 0; } .v3 .feed .recommendations article .type { padding-left: 22px; } .v3 .feed .recommendations .discover { color: #ddd; } .v3 .feed .recommendations .discover img { max-height: 55px; margin-bottom: 5px; } .v3 .quick-actions-wrapper { margin-bottom: 20px; } .v3 .quick-actions-wrapper .quick-actions { margin-top: 0; } .v3 .quick-actions { margin-left: 15px; } .v3 .quick-actions li { background-color: #f3f3f3; margin-bottom: 8px; border-radius: 10px; } .v3 .quick-actions li:hover { background-color: #ddd; } .v3 .quick-actions li:last-child { margin-bottom: 0; margin-right: 0; } .v3 .quick-actions li a { padding: 4px 8px 4px 0; font-weight: bold; text-align: center; } .v3 .quick-actions li span { display: inline: block; padding-left: 30px; background-repeat: no-repeat; background-size: auto 17px; background-position: 7px 50%; } .v3 .quick-actions .rss span { background-image: url(/images/rss-black.svg); } .v3 .quick-actions .tags { margin-right: 0; } .v3 .quick-actions .tags span { background-image: url(/images/tag-black.svg); } .v3 .overview .filter { padding: 9px 24px; padding-top: 19px; border-radius: 15px; background-color: #f3f3f3; } .v3 .overview .filter strong, .v3 .overview .filter ul, .v3 .overview .filter li, .v3 .overview .filter a { display: inline-block; } .v3 .overview .filter strong, .v3 .overview .filter li { margin-right: 7px; margin-bottom: 10px; } .v3 .overview .filter a { border-radius: 10px; padding: 2px 15px; background-color: #ddd; } .v3 .overview .filter a:not(.selected):hover { background-color: #ccc; } .v3 .overview .filter a.selected { background-color: #cb3018; color: #fff; } /* Theming */ @media (prefers-color-scheme: dark) { html, .supporter::before { background-color: #222; } article .date, footer { color: #8a8a8a; } body, .search input[type="text"], .pagination:hover { color: #ddd; } .item-list > li, .related-content .item-list > li, .search .search-box input[type="text"], .pagination:hover, .newsletter .signup, .discover .content .item-list, .feed > li, .v3 .quick-actions li, .v3 .overview .filter { background-color: #111; } .search .search-box input[type="submit"], .item-list > li > a:hover, .v3 .feed article .info { background-color: #050505; } .index .quick-links .rss span, .v3 .quick-actions .rss span { background-image: url(/images/rss-white-muted.svg); } .index .quick-links .browse-tags span, .v3 .quick-actions .tags span { background-image: url(/images/tag-white-muted.svg); } .index .quick-links .sponsorship span { background-image: url(/images/heart-white-muted.svg); } .index .quick-links .qa span { background-image: url(/images/question-white-muted.svg); } .index h2.latest { background-image: url(/images/latest-white.svg); } .index h2.article { background-image: url(/images/article-white.svg); } .index h2.podcast { background-image: url(/images/podcast-white.svg); } .index h2.tips, .index h2.featured { background-image: url(/images/tips-white.svg); } .index h2.video, .actions .youTube a, .quick-links .youTube span { background-image: url(/images/video-white-muted.svg); } .index h2.basics { background-image: url(/images/basics-white-muted.svg); } .item-list .article .type, .item-list .archive .type { background-image: url(/images/article-lightgray.svg); } .item-list .podcast .type { background-image: url(/images/podcast-lightgray.svg); } .item-list .tips .type, .item-list .special .type { background-image: url(/images/tips-lightgray.svg); padding-left: 19px; } .item-list .basics .type { background-image: url(/images/basics-lightgray.svg); padding-left: 20px; } .item-list .video .type { background-image: url(/images/video-lightgray.svg); } .item-list .newsletter .type { background-image: url(/images/newsletter-lightgray.svg); } .item-list .link .type { background-image: url(/images/link-lightgray.svg); } .item-list .qa .type { background-image: url(/images/question-lightgray.svg); } article p code, article li code, .discover .content code, .related-content, .podcast .audio-box { background-color: #171717; } article p.info, blockquote p, .services .content > ul, .sponsorship .content > ul, .sponsorship .packages .grid > li, .sponsorship a.email, article .archive-notice { background-color: #101010; } article audio { opacity: 0.8; } .item-list article .date, .item-list article .type, .sponsorship .sponsor-list .name { color: #7d7d7d; } .subscribe a, .audio-box .podcast-players a, .v3 .overview .filter a:not(.selected):hover { background-color: #050505; } .subscribe a.rss, .podcast-players a.rss { background-image: url(/images/rss-white.svg); } .subscribe a.newsletter { background-image: url(/images/newsletter-white.svg); } .subscribe a.youTube { background-image: url(/images/video-white.svg); } .subscribe a.twitter { background-image: url(/images/twitter-white.svg); } .subscribe .schedule, a.browse-all { color: #ff3d24; } .supporter { border-color: #19a198; } .supporter::before, .supporter-header, .supporter-footer { color: #19a198; } .supporter.image-border img { border: none; } .actions .download a { background-image: url(/images/download-white.svg); } .actions .share a { background-image: url(/images/twitter-white-muted.svg); } .actions .newsletter a { background-image: url(/images/newsletter-white.svg); } .sponsorship .packages .price { color: #ff644e; } .item .newsletter .content a { color: #ea5b3a; } .tags .qa { background-color: #ddd; color: #000; } .v3 .quick-actions li:hover, .v3 .overview .filter a { background-color: #000; } .v3 .supporter { background-color: #023632; } .v3 .supporter:hover  { background-color: #012b27; } .v3 .supporter::before { background-color: #19a198; } } /* Responsive */ @media(max-width: 900px) { .pagination { display: none; } .index .item-list.quick-links span { padding-left: 28px; } .grid.item-list.discover-list { grid-template-columns: repeat(2, 1fr); } } @media(max-width: 720px) { .newsletter .signup { text-align: center; } .newsletter .signup label { display: block; margin-bottom: 10px; } .sponsorship .sponsor-list { grid-template-columns: repeat(4, 1fr); } } @media(max-width: 655px) { header nav { padding-top: 2px; } header nav li a { padding: 0; margin: 0 10px; border-bottom: 2px solid transparent; } header nav li a:hover, header nav li.selected a { background-color: inherit; border-bottom: 2px solid #cb3018; color: #cb3018; } header nav li.search.selected a, header nav li.search a:hover { background-image: url(/images/search.svg); } .supporter.compact img, .content .supporter.compact img { max-height: 85px; } .supporter.compact.short-text img, .content .supporter.compact.short-text img { max-height: 70px; } .v3 .hstack.responsive { flex-direction: column; } .v3 .vstack.responsive { flex-direction: row; } .v3 .quick-actions { margin-left: 0; margin-top: 20px; } .v3 .quick-actions li span { margin: 0 auto; } .v3 .quick-actions li { margin-bottom: 0; margin-right: 15px; } .v3 .quick-actions li a { min-height: 44px; } .v3 .index .section-header { text-align: center; } .v3 .index .section-header:not(.no-top-margin) { margin-top: 15px; } .v3 .index .section-header .browse-all { display: block; float: none; margin-top: 10px; } .v3 .index .section-header h2 { float: none; margin-top: 0; } .v3 .index > ul:not(.discover-list) { margin-top: 15px; } .v3 .index > ul > li:first-child { margin-top: 0; } .index .browse-all a { margin-left: 10px; margin-right: 10px; } } @media(max-width: 600px) { .mobile, .discover .content .mobile { display: inherit; } .hiddenOnMobile { display: none; } .wrapper { padding-left: 20px; padding-right: 20px; } .page { padding-top: 20px; } .item-list.grid:not(.quick-links) { display: block; } .item-list.grid > li { margin-bottom: 20px; } .index .item-list.quick-links { grid-template-columns: repeat(2, 1fr); } .item-list.grid > li:last-child, .index .quick-links > li { margin-bottom: 0; } .index .latest p { display: none; } .index .browse-all.mobile { display: block; margin: 10px 0 25px 0; float: none; text-align: center; font-size: 1.1em; } .sponsorship .button, .services .button { display: block; text-align: center; padding: 4px 6px; } .theme-select > span { display: block; margin-bottom: 7px; } .subscribe .schedule { display: block; margin-bottom: 7px; } .subscribe .schedule::after { content: none; } article .tags { display: block; margin-bottom: 5px; } .section-overview .item-list article .date { display: block; margin-bottom: 7px; font-size: 0.85em; } .section-overview .item-list.grid article .date { margin-bottom: 0; } .theme-select { display: block; border-radius: 15px; padding-bottom: 15px; } .related-content .float-container > *, .tag-items .header > * { float: none; } .related-content .browse-all, .tag-items .header .browse-all { float: none; margin-top: 15px; display: inline-block; } .newsletter .signup { padding-bottom: 0; } .newsletter .signup input[type="email"] { margin-bottom: 15px; } .newsletter .signup input[type="submit"] { font-size: inherit; margin-bottom: 15px; } .search .search-box, .search .search-box input[type="text"] { display: block; max-width: 100%; width: 100%; } .sponsorship .packages > .grid { display: block; } .sponsorship .packages > .grid > li:first-child { margin-bottom: 20px; } .sponsorship .sponsor-list { grid-template-columns: repeat(3, 1fr); } .supporter img.main, .content .supporter img.main, .supporter picture.main, .content .supporter picture.main { display: none; } .supporter img.mobile, .content .supporter img.mobile { display: block; } pre code { margin-left: -20px; margin-right: -20px; padding: 20px; border-radius: 0; } pre.short-code code { padding: 35px 20px; } .code-preview a { right: -10px; } .code-preview img { max-width: 159px; } .discover .inline { display: none; } .discover .item-list.grid > li { margin-bottom: 0; } .v3 .supporter img, .v3 .supporter img.main, .v3 .content .supporter img.main { display: inherit; } .v3 .feed > li { margin-left: -20px; margin-right: -20px; border-radius: 0; } .v3 .feed article pre code { margin-left: -25px; margin-right: -25px; } .v3 .feed > li > article { padding: 10px 6px; } .v3 .feed article.sponsorship .tags { display: inline-block; margin-bottom: 0; } .v3 .feed li.recommendations > ul, .v3 .feed li.supporter-wrapper { padding: 0 18px; } .v3 .overview .filter strong, .v3 .overview .filter li { margin-right: 6px; } header nav .search a, header nav li.search.selected a, header nav li.search a:hover { color: #cb3018 !important; background-image: none; width: auto; } } @media(max-width: 550px) { .supporter.short-text img, .content .supporter.short-text img, .supporter.compact.short-text img, .content .supporter.compact.short-text img { max-height: 60px; } .discover .intro .icon { margin-bottom: 8px; max-height: 50px; } .discover .intro h1 { line-height: 1em; } .discover .intro p { padding-bottom: 15px; } .discover .intro .title-wrapper { margin-bottom: 6px; margin-top: 0; } } @media(max-width: 375px) { .sponsorship .sponsor-list { grid-template-columns: repeat(2, 1fr); } } 