-enabled: false
-src: //cdn.carbonads.com/carbon.js?zoneid=1673&serve=C6AILKT&placement=ricostacruzcom
+enabled: true
+src: https://cdn.carbonads.com/carbon.js?serve=CE7IK5QM&placement=devhintsio
--- /dev/null
+<div class='HeadlineAd' role='complementary'>
+ <script async src='{{ site.data.carbon.src }}' id="_carbonads_js"></script>
+ <span class='placeholder -one'></span>
+ <span class='placeholder -two'></span>
+ <span class='placeholder -three'></span>
+ <span class='placeholder -four'></span>
+</div>
{% include 2017/top-nav.html page=page is_home=true noedit=true noback=true %}
-{% if site.data.carbon.enabled %}
- <div class='SideAd' role='complementary'>
- <script async src='{{ site.data.carbon.src }}' id="_carbonads_js"></script>
- </div>
-{% endif %}
-
<div class='body-area -slim'>
<div class='site-header' role='banner'>
<h1>
{% include 2017/search-form.html live=true %}
- {% if site.data.codefund.enabled %}
- <div class='adbox' role='complementary'>
- {% include 2017/codefund.html %}
- </div>
+ {% if site.data.carbon.enabled %}
+ <div class='adbox'>
+ {% include 2017/headline-ad.html %}
+ </div>
{% endif %}
</div>
<h1 class='h1'>{{ page.title }} <em>{{ site.data.content.sheet.suffix }}</em></h1>
<div class='adbox' data-js-no-preview>
- {% if site.data.codefund.enabled %}
- <div class='ad -codefund' role='complementary'>
- {% include 2017/codefund.html %}
- </div>
- {% endif %}
-
{% if site.data.carbon.enabled %}
- <div class='HeadlineAd ad -carbon' role='complementary'>
- <script async src='{{ site.data.carbon.src }}' id="_carbonads_js"></script>
- </div>
+ {% include 2017/headline-ad.html %}
{% endif %}
</div>
</header>
@import '../_sass/2017/components/announcements-list.scss';
@import '../_sass/2017/components/back-button.scss';
@import '../_sass/2017/components/body-area.scss';
-@import '../_sass/2017/components/codefund-sponsor.scss';
+@import '../_sass/2017/components/headline-ad.scss';
@import '../_sass/2017/components/page-actions.scss';
@import '../_sass/2017/components/pages-list.scss';
@import '../_sass/2017/components/search-box.scss';
// Components
@import '../_sass/2017/components/back-button.scss';
@import '../_sass/2017/components/body-area.scss';
-@import '../_sass/2017/components/codefund-sponsor.scss';
@import '../_sass/2017/components/h3-section.scss';
@import '../_sass/2017/components/h3-section-list.scss';
+@import '../_sass/2017/components/headline-ad.scss';
@import '../_sass/2017/components/main-heading.scss';
@import '../_sass/2017/components/page-actions.scss';
@import '../_sass/2017/components/top-nav.scss';
/*
* Carbon ads
*
- * .headline-ad
- * #carbonads
+ * .HeadlineAd
+ * div#carbonads
* span
* span.carbon-wrap
* a.carbon-img > img
- * a.carbon-text {description}
+ * a.carbon-text {description}
* a.carbon-poweredby {powered by Carbon}
*/
+$placeholder-bg-size: 450px;
+
.HeadlineAd {
- @include font-size(-1);
@include carbon-style;
& {
- display: inline-block;
+ position: relative;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
}
- &,
- & > div > span {
- min-width: 130px + 16px + 64px;
- max-width: 380px;
- height: 100px;
+ // Hide placeholders after carbon has loaded
+ #carbonads ~ .placeholder {
+ display: none;
+ }
+
+ & > .placeholder {
+ background-image: linear-gradient(
+ 92deg,
+ rgba($gray-text, 0.1),
+ rgba($gray-text, 0.17) 15%,
+ rgba($gray-text, 0.1) 30%
+ );
+ background-size: $placeholder-bg-size 100%;
+ animation: 2.5s ease-in-out infinite placeholder-swish;
+ border-radius: 3px;
+ position: absolute;
+ display: block;
+ }
+
+ & > .placeholder.-one {
+ left: 0;
+ top: 0;
+ width: 83px;
+ height: 64px;
+ }
+
+ & > .placeholder.-two,
+ & > .placeholder.-three,
+ & > .placeholder.-four {
+ left: 99px;
+ top: 6px;
+ height: 8px;
+ width: 280px;
+ }
+
+ & > .placeholder.-three {
+ top: 28px;
+ }
+
+ & > .placeholder.-four {
+ top: 50px;
+ width: 80px;
+ }
+
+ // Make the ad show up above the placeholder
+ #carbonads {
+ position: relative;
+ z-index: 1;
}
+ // Carbon wrapper
+ &,
& > div > span {
- display: inline-block;
- text-align: right;
+ display: block;
+ width: 380px;
+ height: 64px;
+ text-align: left;
}
// Clearfix
}
.carbon-img {
- float: right;
- margin-left: 16px;
+ float: left;
+ margin-right: 16px;
}
+}
- .carbon-text:first-line {
- @include font-size(1);
- color: $base-head;
- font-weight: 300;
- margin-bottom: -0.02em;
+@keyframes placeholder-swish {
+ 0% {
+ background-position: ($placeholder-bg-size * -1 / 3) 0%;
}
- @media (min-width: 481px) {
- .carbon-poweredby::before {
- display: block;
- content: '';
- width: 32px;
- height: 1px;
- background: $dark-line-color;
- margin: 8px (130px + 16px) 8px auto;
- }
+ 50% {
+ background-position: ($placeholder-bg-size * 2 / 3) 0%;
+ }
+
+ 100% {
+ background-position: ($placeholder-bg-size * 2 / 3) 0%;
}
}
+
display: inline-block;
}
- & > .adbox > .ad.-carbon {
- margin-top: 16px;
+ @media (min-width: 769px) {
+ & > .adbox {
+ margin-top: 24px;
+ margin-bottom: 24px;
+ }
}
}
margin: 16px auto;
}
- @media (max-width: 480px) {
+ @media (min-width: 481px) {
& > .adbox {
- margin-left: -16px;
- margin-right: -16px;
+ margin-top: 32px;
+ margin-bottom: 32px;
}
}
}
@import './components/announcements-list';
@import './components/back-button';
@import './components/body-area';
-@import './components/codefund-sponsor';
@import './components/comments-area';
@import './components/comments-details';
@import './components/comments-section';
@import './components/related-post-item';
@import './components/search-box';
@import './components/search-footer';
-@import './components/side-ad';
@import './components/site-header';
@import './components/top-nav';
@import './components/top-sheet';
.carbon-text,
.carbon-poweredby {
text-decoration: none;
- display: block;
}
- .carbon-img {
- width: 130px;
- height: 100px;
- box-shadow: $shadow3;
+ // Increase hit area
+ .carbon-text,
+ .carbon-poweredby {
+ padding-top: 4px;
+ padding-bottom: 4px;
}
.carbon-img > img {
+ width: 83px; // 13:10 ratio
+ height: 64px;
+ box-shadow: $shadow3;
border-radius: 3px;
- background: white;
+ background: rgba($gray-text, 0.2);
+ color: transparent;
}
- .carbon-img:hover {
+ .carbon-img:hover img {
transform: translate3d(0, -1px, 0);
box-shadow: $shadow6;
}
.carbon-text,
.carbon-text:visited {
- color: $gray-text;
+ color: $base-text;
}
- .carbon-poweredby,
- .carbon-poweredby:visited {
- color: lighten($gray-text, 20%);
+ // Allow line breaks
+ .carbon-text::after {
+ content: ' ';
}
.carbon-text:hover,
.carbon-poweredby:hover {
- color: $base-a;
+ color: $base-b;
}
-}
+ .carbon-poweredby,
+ .carbon-poweredby:visited {
+ white-space: nowrap;
+ color: $gray-text;
+ }
+}
echo "String is empty"
elif [[ -n "$string" ]]; then
echo "String is not empty"
+else
+ echo "This never happens"
fi
```
---
## Basics
-
{: .-three-column}
### Selectors
font-weight: bold;
}
```
-
{: .-setup}
| Selector | Description |
| `:last-child` |
| `:nth-child(2)` |
| `:only-child` |
-
{: .-left-align}
## Fonts
-
{: .-left-reference}
### Properties
| --- | --- |
| `text-align:` | `left` `right` `center` `justify` |
| `text-transform:` | `capitalize` `uppercase` `lowercase` |
-
{: .-key-values}
### Shorthand
-
{: .-prime}
| | style | weight | size (required) | | line-height | family |
| ------- | -------- | ------ | --------------- | --- | ----------- | ----------------- |
| `font:` | `italic` | `400` | `14px` | `/` | `1.5` | `sans-serif` |
| | style | weight | size (required) | | line-height | family (required) |
-
{: .-css-breakdown}
### Example
```
## Background
-
{: .-left-reference}
### Properties
| `background-clip:` | `border-box` `padding-box` `content-box` |
| `background-repeat:` | `no-repeat` `repeat-x` `repeat-y` |
| `background-attachment:` | `scroll` `fixed` `local` |
-
{: .-key-values}
### Shorthand
| `background:` | `#ff0` | `url(bg.jpg)` | `left` | `top` | `/` | `100px` `auto` | `no-repeat` | `fixed;` |
| `background:` | `#abc` | `url(bg.png)` | `center` | `center` | `/` | `cover` | `repeat-x` | `local;` |
| | color | image | positionX | positionY | | size | repeat | attachment |
-
{: .-css-breakdown}
### Multiple backgrounds
```
## Animation
-
{: .-left-reference}
### Properties
| `animation-direction:` | `normal` `reverse` `alternate` `alternate-reverse` |
| `animation-fill-mode:` | `none` `forwards` `backwards` `both` `initial` `inherit` |
| `animation-play-state:` | `normal` `reverse` `alternate` `alternate-reverse` |
-
{: .-key-values}
### Shorthand
| ------------ | -------- | -------- | --------------- | ------- | ---------- | ------------------- | --------- | ---------- |
| `animation:` | `bounce` | `300ms` | `linear` | `100ms` | `infinite` | `alternate-reverse` | `both` | `reverse` |
| | name | duration | timing-function | delay | count | direction | fill-mode | play-state |
-
{: .-css-breakdown}
### Example
Object.entries(fatherJS)
// [["age", 57], ["name", "Brendan Eich"]]
```
-
{: data-line="3,5"}
fmt.Println("Working...")
}
```
-
{: data-line="2,3,4"}
Lambdas are better suited for defer blocks.
```html
<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>
```
-
{: .-wrap}
This is the default script for Polyfill.io.
}
```
-
{: data-line="5,6,7,8,9,10"}
Nest components to separate concerns.
}
}
```
-
{: data-line="2"}
See: [Setting the default state](https://reactjs.org/docs/react-without-es6.html#setting-the-initial-state)