chore(i18n,curriculum): processed translations - new ukrainian (#44447)

This commit is contained in:
camperbot
2021-12-10 11:14:24 +05:30
committed by GitHub
parent 8651ee1797
commit 0473dedf47
1663 changed files with 156692 additions and 1 deletions

View File

@@ -0,0 +1,154 @@
---
id: 587d781b367417b2b2512abe
title: Додавання тіні до карткового елемента
challengeType: 0
videoUrl: 'https://scrimba.com/c/cvVZdUd'
forumTopicId: 301031
dashedName: add-a-box-shadow-to-a-card-like-element
---
# --description--
Властивість `box-shadow` додає одну або більше тіней до елемента.
Властивість `box-shadow` приймає значення
<ul>
<li><code>offset-x</code> (наскільки далеко відсунути тінь від елемента по горизонталі)</li>
<li><code>offset-y</code> (наскільки далеко відсунути тінь від елемента по вертикалі)</li>
<li><code>blur-radius</code>,</li>
<li><code>spread-radius</code> і</li>
<li><code>color</code>, в такому порядку.</li>
</ul>
Значення `blur-radius` та `spread-radius` є необов'язковими.
Можна створити кілька тіней, використовуючи коми для розділення властивостей кожного елемента `box-shadow`.
Ось приклад CSS для створення декількох тіней майже прозорого чорного кольору з невеликою розмитістю:
```css
box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
```
# --instructions--
Тепер елемент має id `thumbnail`. За допомогою цього селектора, використайте значення з прикладу CSS вище, щоб застосувати `box-shadow` на картці.
# --hints--
Ваш код повинен додати властивість `box-shadow` до id `thumbnail`.
```js
assert(code.match(/#thumbnail\s*?{\s*?box-shadow/g));
```
Вам потрібно використати даний CSS для значення `box-shadow`.
```js
assert(
code.match(
/box-shadow:\s*?0\s+?10px\s+?20px\s+?rgba\(\s*?0\s*?,\s*?0\s*?,\s*?0\s*?,\s*?0?\.19\)\s*?,\s*?0\s+?6px\s+?6px\s+?rgba\(\s*?0\s*?,\s*?0\s*?,\s*?0\s*?,\s*?0?\.23\)/gi
)
);
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
background-color: rgba(45, 45, 45, 0.1);
padding: 10px;
font-size: 27px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard" id="thumbnail">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
background-color: rgba(45, 45, 45, 0.1);
padding: 10px;
font-size: 27px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
#thumbnail {
box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard" id="thumbnail">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,146 @@
---
id: 587d781b367417b2b2512abc
title: Налаштування властивості фонового кольору тексту
challengeType: 0
videoUrl: 'https://scrimba.com/c/cEDqwA6'
forumTopicId: 301032
dashedName: adjust-the-background-color-property-of-text
---
# --description--
Замість того, щоб налаштовувати загальний фон чи колір тексту, аби передній план легко читався, ви можете додати `background-color` до елемента з текстом, який хочете підкреслити. В цьому завданні використовується код `rgba()` замість `hex` чи стандартного `rgb()`.
<blockquote>rgba означає:<br> r = red (червоний)<br> g = green (зелений)<br> b = blue (синій)<br> a = alpha/рівень непрозорості</blockquote>
Значення RGB можуть змінюватися в діапазоні від 0 до 255. Значення альфа може змінюватися від 1, коли колір повністю непрозорий або суцільний, до 0, коли колір стає повністю прозорий і виразний. `rgba()` чудово підходить в цій ситуації, оскільки дозволяє вам налаштувати непрозорість. Це значить, що вам не треба повністю загороджувати фон.
В цьому завданні вам слід використати `background-color: rgba(45, 45, 45, 0.1)`. Це створить темно-сірий колір, який буде майже прозорим через низький рівень непрозорості.
# --instructions--
Щоб текст більше виділявся, поміняйте властивість `background-color` елемента `h4` на дане значення `rgba()`.
Також видаліть в `h4` властивість `height` та додайте `padding` з 10px.
# --hints--
Ваш код повинен додати властивість `background-color` до елемента `h4` з налаштуванням `rgba(45, 45, 45, 0.1)`.
```js
assert(
/(background-color|background):rgba\(45,45,45,0?\.1\)(;?}|;)/gi.test(
code.replace(/\s/g, '')
)
);
```
Ваш код повинен додати властивість `padding` до елемента `h4` та налаштувати її до 10 пікселів.
```js
assert(
$('h4').css('padding-top') == '10px' &&
$('h4').css('padding-right') == '10px' &&
$('h4').css('padding-bottom') == '10px' &&
$('h4').css('padding-left') == '10px'
);
```
Властивість `height` елемента `h4` потрібно видалити.
```js
assert(!($('h4').css('height') == '25px'));
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
padding: 10px;
background-color: rgba(45, 45, 45, 0.1);
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,130 @@
---
id: 587d78a4367417b2b2512ad3
title: Змінити колір різних елементів до додаткових кольорів
challengeType: 0
videoUrl: 'https://scrimba.com/c/cWmPpud'
forumTopicId: 301033
dashedName: adjust-the-color-of-various-elements-to-complementary-colors
---
# --description--
Згідно з завданням про доповняльні кольори, якщо протилежні кольори розташувати на палітрі один біля одного, це зробить їх більш насиченими. Проте, у разі використання на сайті насиченого візуалу, це може викликати роздратування і ускладнювати читання, особливо якщо колір фону доповняльний. На практиці, один із кольорів зазвичай є домінантним, а доповняльний використовується, щоб надати особливої уваги змісту на сторінці.
# --instructions--
Для цієї сторінки буде використано відтінок бірюзового (`#09A7A1`) як домінантний колір, та доповняльний йому - помаранчевий (`#FF790E`), щоб візуально виділити кнопку реєстрації. Змініть колір `background-color` елементів `header` та `footer` з чорного на бірюзовий. Потім змініть також властивість `color` тексту `h2` на бірюзовий. І під кінець, змініть колір `background-color` кнопки `button` на помаранчевий.
# --hints--
Елементу `header` необхідно мати властивість `background-color` із значенням #09A7A1.
```js
assert($('header').css('background-color') == 'rgb(9, 167, 161)');
```
Елементу `footer` необхідно мати властивість `background-color` із значенням #09A7A1.
```js
assert($('footer').css('background-color') == 'rgb(9, 167, 161)');
```
Елементу `h2` необхідно мати властивість `color` із значенням #09A7A1.
```js
assert($('h2').css('color') == 'rgb(9, 167, 161)');
```
Елементу `button` необхідно мати властивість `background-color` із значенням #FF790E.
```js
assert($('button').css('background-color') == 'rgb(255, 121, 14)');
```
# --seed--
## --seed-contents--
```html
<style>
body {
background-color: white;
}
header {
background-color: black;
color: white;
padding: 0.25em;
}
h2 {
color: black;
}
button {
background-color: white;
}
footer {
background-color: black;
color: white;
padding: 0.5em;
}
</style>
<header>
<h1>Cooking with FCC!</h1>
</header>
<main>
<article>
<h2>Machine Learning in the Kitchen</h2>
<p>Join this two day workshop that walks through how to implement cutting-edge snack-getting algorithms with a command line interface. Coding usually involves writing exact instructions, but sometimes you need your computer to execute flexible commands, like <code>fetch Pringles</code>.</p>
<button>Sign Up</button>
</article>
<article>
<h2>Bisection Vegetable Chopping</h2>
<p>This week-long retreat will level-up your coding ninja skills to actual ninja skills. No longer is the humble bisection search limited to sorted arrays or coding interview questions, applying its concepts in the kitchen will have you chopping carrots in O(log n) time before you know it.</p>
<button>Sign Up</button>
</article>
</main>
<br>
<footer>&copy; 2018 FCC Kitchen</footer>
```
# --solutions--
```html
<style>
body {
background-color: white;
}
header {
background-color: #09A7A1;
color: white;
padding: 0.25em;
}
h2 {
color: #09A7A1;
}
button {
background-color: #FF790E;
}
footer {
background-color: #09A7A1;
color: white;
padding: 0.5em;
}
</style>
<header>
<h1>Cooking with FCC!</h1>
</header>
<main>
<article>
<h2>Machine Learning in the Kitchen</h2>
<p>Join this two day workshop that walks through how to implement cutting-edge snack-getting algorithms with a command line interface. Coding usually involves writing exact instructions, but sometimes you need your computer to execute flexible commands, like <code>fetch Pringles</code>.</p>
<button>Sign Up</button>
</article>
<article>
<h2>Bisection Vegetable Chopping</h2>
<p>This week-long retreat will level-up your coding ninja skills to actual ninja skills. No longer is the humble bisection search limited to sorted arrays or coding interview questions, applying its concepts in the kitchen will have you chopping carrots in O(log n) time before you know it.</p>
<button>Sign Up</button>
</article>
</main>
<br>
<footer>&copy; 2018 FCC Kitchen</footer>
```

View File

@@ -0,0 +1,118 @@
---
id: 587d7791367417b2b2512ab5
title: Змініть висоту елементу за допомогою властивості висоти
challengeType: 0
videoUrl: 'https://scrimba.com/c/cEDaDTN'
forumTopicId: 301034
dashedName: adjust-the-height-of-an-element-using-the-height-property
---
# --description--
Ви можете вказати висоту елементу, використовуючи властивість `height` в CSS, схожу до властивості `width`. Ось приклад, який задає зображенню висоту в 20 пікселів:
```css
img {
height: 20px;
}
```
# --instructions--
Додайте властивість `height` до тегу `h4` і задайте йому значення у 25 пікселів.
**Примітка:** Вам може знадобитися збільшити масштаб на 100%, щоб пройти тест у цьому завданні.
# --hints--
Вам код має змінити значення властивості `height` тегу `h4` на 25 пікселів.
```js
assert(
Math.round(document.querySelector('h4').getBoundingClientRect().height) ===
25 &&
/h4{\S*height:25px(;\S*}|})/.test($('style').text().replace(/\s/g, ''))
);
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
}
p {
text-align: justify;
}
.links {
margin-right: 20px;
text-align: left;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
margin-right: 20px;
text-align: left;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,72 @@
---
id: 587d781d367417b2b2512ac8
title: Зміна стану якірного тега при наведенні курсора
challengeType: 0
videoUrl: 'https://scrimba.com/c/cakRGcm'
forumTopicId: 301035
dashedName: adjust-the-hover-state-of-an-anchor-tag
---
# --description--
У цьому завданні буде йти мова про псевдокласи. Псевдоклас - це ключове слове, яке можна додавати до селекторів, щоб обрати певний стан елемента.
Наприклад, стиль якірного тега при наведенні курсора можна змінити за допомогою `:hover` селектора псевдокласу. Ось CSS для зміни властивості `color` якірного тегу на червоний при наведенні:
```css
a:hover {
color: red;
}
```
# --instructions--
Редактор коду має правило CSS, щоб змінити колір усіх тегів `a` на чорний. Додайте таке правило, щоб при наведенні користувачем курсора на тег `a` його колір `color` ставав синім.
# --hints--
Колір якірного тегу `color` має залишатися чорним, додайте правила CSS лише для стану `:hover`.
```js
assert($('a').css('color') == 'rgb(0, 0, 0)');
```
Колір якірного тега має ставати синім `color` при наведенні.
```js
assert(
code.match(
/a:hover\s*?{\s*?color:\s*?(blue|rgba\(\s*?0\s*?,\s*?0\s*?,\s*?255\s*?,\s*?1\s*?\)|#00F|rgb\(\s*?0\s*?,\s*?0\s*?,\s*?255\s*?\))\s*?;\s*?}/gi
)
);
```
# --seed--
## --seed-contents--
```html
<style>
a {
color: #000;
}
</style>
<a href="https://freecatphotoapp.com/" target="_blank">CatPhotoApp</a>
```
# --solutions--
```html
<style>
a {
color: #000;
}
a:hover {
color: rgba(0,0,255,1);
}
</style>
<a href="https://freecatphotoapp.com/" target="_blank">CatPhotoApp</a>
```

View File

@@ -0,0 +1,129 @@
---
id: 587d78a4367417b2b2512ad4
title: Регулювання відтінку кольору
challengeType: 0
videoUrl: 'https://scrimba.com/c/cPp38TZ'
forumTopicId: 301036
dashedName: adjust-the-hue-of-a-color
---
# --description--
Кольори мають декілька характеристик, включно з відтінком, насиченістю та яскравістю. У CSS3 властивість `hsl()` представлена як альтернативний спосіб вибору кольору, з налаштуванням усіх трьох характеристик.
Під**відтінком** люди часто розуміють колір. Якщо уявити спектр кольорів, починаючи з червоного зліва, через зелений посередині, і закінчуючи синім справа, то відтінок - це місце на цій лінії, де знаходиться колір. У `hsl()`, для визначення відтінку замість спектру використовується концепція колірного кола, де кут кольору на окружності задається значенням від 0 до 360.
**Насиченість** це кількість сірого в кольорі. Чим менше сірого, тим насиченішим є колір, тоді як мінімально насичений колір майже повністю сірий. Це задається відсотками, де 100% означає максимально насичений колір.
**Яскравість** це вміст білого або чорного в кольорі. Відсоток задається значенням від 0% (чорний) до 100% (білий), де 50% це стандартний колір.
Ось кілька прикладів використання `hsl()` з максимально насиченими кольорами зі стандартною яскравістю:
<table class='table table-striped'><thead><tr><th>Колір</th><th>HSL</th></tr></thead><tbody><tr><td>червоний</td><td>hsl(0, 100%, 50%)</td></tr><tr><td>жовтий</td><td>hsl(60, 100%, 50%)</td></tr><tr><td>зелений</td><td>hsl(120, 100%, 50%)</td></tr><tr><td>блакитний</td><td>hsl(180, 100%, 50%)</td></tr><tr><td>синій</td><td>hsl(240, 100%, 50%)</td></tr><tr><td>пурпуровий</td><td>hsl(300, 100%, 50%)</td></tr></tbody></table>
# --instructions--
Змініть колір фону `background-color` кожного `div` елемента, відповідно до імен класу (зелений `green`, блакитний `cyan`, або синій `blue`), використовуючи колірну модель `hsl()`. Усі три повинні мати максимальну насиченість і стандартну яскравість.
# --hints--
Ви маєте використати властивість `hsl()`, щоб задати зелений колір `green`.
```js
assert(code.match(/\.green\s*?{\s*?background-color\s*:\s*?hsl/gi));
```
Ви маєте використати властивість `hsl()`, щоб задати блакитний колір `cyan`.
```js
assert(code.match(/\.cyan\s*?{\s*?background-color\s*:\s*?hsl/gi));
```
Ви маєте використати властивість `hsl()`, щоб задати синій колір `blue`.
```js
assert(code.match(/\.blue\s*?{\s*?background-color\s*:\s*?hsl/gi));
```
У `div` елементу класу `green` колір фону `background-color` має бути зеленим.
```js
assert($('.green').css('background-color') == 'rgb(0, 255, 0)');
```
У `div` елементу класу `cyan` колір фону `background-color` має бути блакитним.
```js
assert($('.cyan').css('background-color') == 'rgb(0, 255, 255)');
```
У `div` елементу класу `blue` колір фону `background-color` має бути синім.
```js
assert($('.blue').css('background-color') == 'rgb(0, 0, 255)');
```
# --seed--
## --seed-contents--
```html
<style>
body {
background-color: #FFFFFF;
}
.green {
background-color: #000000;
}
.cyan {
background-color: #000000;
}
.blue {
background-color: #000000;
}
div {
display: inline-block;
height: 100px;
width: 100px;
}
</style>
<div class="green"></div>
<div class="cyan"></div>
<div class="blue"></div>
```
# --solutions--
```html
<style>
body {
background-color: #FFFFFF;
}
.green {
background-color: hsl(120, 100%, 50%);
}
.cyan {
background-color: hsl(180, 100%, 50%);
}
.blue {
background-color: hsl(240, 100%, 50%);
}
div {
display: inline-block;
height: 100px;
width: 100px;
}
</style>
<div class="green"></div>
<div class="cyan"></div>
<div class="blue"></div>
```

View File

@@ -0,0 +1,119 @@
---
id: 587d781b367417b2b2512abd
title: Налаштування розміру заголовка елемента відносно параграфу елемента
challengeType: 0
videoUrl: 'https://scrimba.com/c/c3bRPTz'
forumTopicId: 301037
dashedName: adjust-the-size-of-a-heading-element-versus-a-paragraph-element
---
# --description--
Розмір шрифту елементів заголовка (`h1` through `h6`) в цілому повинен бути більшим, аніж розмір шрифту тегів параграфів. Для користувача це значно полегшує сприйняття макета візуально та розуміння важливості кожного елемента на сторінці. Використовуйте властивість `font-size`, щоб змінити розмір тексту елемента.
# --instructions--
Для того, щоб зробити заголовок значно більшим, ніж сам параграф, змініть розмір шрифту `font-size` of the `h4` елемента на 27 пікселів.
# --hints--
Ваш код повинен додати властивість `font-size` до елемента `h4` і встановити значення на 27 пікселів.
```js
assert($('h4').css('font-size') == '27px');
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
background-color: rgba(45, 45, 45, 0.1);
padding: 10px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
background-color: rgba(45, 45, 45, 0.1);
padding: 10px;
font-size: 27px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,119 @@
---
id: 587d78a4367417b2b2512ad5
title: Регулювання відтінку кольору
challengeType: 0
videoUrl: 'https://scrimba.com/c/cEDJvT7'
forumTopicId: 301038
dashedName: adjust-the-tone-of-a-color
---
# --description--
Опція колірної моделі `hsl()` в CSS також спрощує налаштування тональності кольору. Якщо змішати білий зі світлим відтінком, можна отримати світлий тон, а якщо з чорним - темний. Окрім цього, тон можна змінити за допомогою одночасного освітлення та затемнення відтінку. Нагадуємо, що в колірній моделі `hsl()` букви 's' і 'l' відповідають за насиченість і яскравість відповідно. Відсоткове значення насиченості змінює кількість сірого в кольорі, а відсоток яскравості визначає, скільки білого та чорного міститься в кольорі. Це стає в нагоді, коли Вам необхідно отримати декілька варіацій кольору, який вам подобається.
# --instructions--
Усі елементи мають `background-color`, який за замовченням є `transparent`. Наш елемент `nav` зараз, вочевидь, має фон кольору `cyan`, через те, що властивості `background-color` елементу за ним надано значення `cyan`. Додайте `background-color` до елемента `nav` так, щоб він використовував той самий колір `cyan`, але з насиченістю `80%` і яскравістю `25%`, щоб змінити його тон і відтінок.
# --hints--
Елемент `nav` повинен містити `background-color` блакитного кольору, налаштованого за допомогою властивості `hsl()`.
```js
assert(
code.match(/nav\s*?{\s*?background-color:\s*?hsl\(180,\s*?80%,\s*?25%\)/gi)
);
```
# --seed--
## --seed-contents--
```html
<style>
header {
background-color: hsl(180, 90%, 35%);
color: #FFFFFF;
}
nav {
}
h1 {
text-indent: 10px;
padding-top: 10px;
}
nav ul {
margin: 0px;
padding: 5px 0px 5px 30px;
}
nav li {
display: inline;
margin-right: 20px;
}
a {
text-decoration: none;
color: inherit;
}
</style>
<header>
<h1>Cooking with FCC!</h1>
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Classes</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
```
# --solutions--
```html
<style>
header {
background-color: hsl(180, 90%, 35%);
color: #FFFFFF;
}
nav {
background-color: hsl(180, 80%, 25%);
}
h1 {
text-indent: 10px;
padding-top: 10px;
}
nav ul {
margin: 0px;
padding: 5px 0px 5px 30px;
}
nav li {
display: inline;
margin-right: 20px;
}
a {
text-decoration: none;
color: inherit;
}
</style>
<header>
<h1>Cooking with FCC!</h1>
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Classes</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
```

View File

@@ -0,0 +1,115 @@
---
id: 587d7791367417b2b2512ab4
title: Налаштування ширини елементу за допомогою властивості width
challengeType: 0
videoUrl: 'https://scrimba.com/c/cvVLPtN'
forumTopicId: 301039
dashedName: adjust-the-width-of-an-element-using-the-width-property
---
# --description--
Ви можете вказати ширину елементу, використовуючи властивість `width` в CSS. Значення можуть бути виражені у відносних одиницях довжини (таких як `em`), абсолютних одиницях довжини (таких як `px`), або у відсотках від розміру вихідного елементу. Ось приклад, який задає зображенню висоту 220 пікселів:
```css
img {
width: 220px;
}
```
# --instructions--
Застосуйте властивість `width` до всієї картки і встановіть їй абсолютне значення 245 пікселів. Використайте значення `fullCard`, щоб обрати елемент.
# --hints--
Ваш код має змінити властивість `width` картки на 245 пікселів, використовуючи селектор значення `fullCard`.
```js
const fullCard = code.match(/\.fullCard\s*{[\s\S]+?[^}]}/g);
assert(
fullCard &&
/width\s*:\s*245px\s*(;|})/gi.test(fullCard[0]) &&
$('.fullCard').css('maxWidth') === 'none'
);
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
}
p {
text-align: justify;
}
.links {
margin-right: 20px;
text-align: left;
}
.fullCard {
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
}
p {
text-align: justify;
}
.links {
margin-right: 20px;
text-align: left;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,141 @@
---
id: 587d78a8367417b2b2512ae5
title: Анімаційні елементи у змінних ставках
challengeType: 0
videoUrl: 'https://scrimba.com/c/cZ89WA4'
forumTopicId: 301040
dashedName: animate-elements-at-variable-rates
---
# --description--
Існує безліч способів зміни частоти анімації аналогічно анімованих елементів. Поки що цього було досягнуто шляхом застосування властивості `animation-iteration-count` і встановлення правил `@keyframes`.
До прикладу, анімація справа складається з двох зірок, розмір і прозорість кожної з яких у правилі `@keyframes` зменшується до позначки 20%, що створює ефект миготіння. Ви можете змінити правило `@keyframes` для одного з елементів, щоб зірки миготіли з різною швидкістю.
# --instructions--
Змініть частоту кадрів анімації елементу класу `star-1`, змінивши значення його `@keyframes` правила на 50%.
# --hints--
Правило `@keyframes` для класу `star-1` повинно становити 50%.
```js
assert(code.match(/twinkle-1\s*?{\s*?50%/g));
```
# --seed--
## --seed-contents--
```html
<style>
.stars {
background-color: white;
height: 30px;
width: 30px;
border-radius: 50%;
animation-iteration-count: infinite;
}
.star-1 {
margin-top: 15%;
margin-left: 60%;
animation-name: twinkle-1;
animation-duration: 1s;
}
.star-2 {
margin-top: 25%;
margin-left: 25%;
animation-name: twinkle-2;
animation-duration: 1s;
}
@keyframes twinkle-1 {
20% {
transform: scale(0.5);
opacity: 0.5;
}
}
@keyframes twinkle-2 {
20% {
transform: scale(0.5);
opacity: 0.5;
}
}
#back {
position: fixed;
padding: 0;
margin: 0;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(black, #000099, #66c2ff, #ffcccc, #ffeee6);
}
</style>
<div id="back"></div>
<div class="star-1 stars"></div>
<div class="star-2 stars"></div>
```
# --solutions--
```html
<style>
.stars {
background-color: white;
height: 30px;
width: 30px;
border-radius: 50%;
animation-iteration-count: infinite;
}
.star-1 {
margin-top: 15%;
margin-left: 60%;
animation-name: twinkle-1;
animation-duration: 1s;
}
.star-2 {
margin-top: 25%;
margin-left: 25%;
animation-name: twinkle-2;
animation-duration: 1s;
}
@keyframes twinkle-1 {
50% {
transform: scale(0.5);
opacity: 0.5;
}
}
@keyframes twinkle-2 {
20% {
transform: scale(0.5);
opacity: 0.5;
}
}
#back {
position: fixed;
padding: 0;
margin: 0;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(black, #000099, #66c2ff, #ffcccc, #ffeee6);
}
</style>
<div id="back"></div>
<div class="star-1 stars"></div>
<div class="star-2 stars"></div>
```

View File

@@ -0,0 +1,107 @@
---
id: 587d78a8367417b2b2512ae3
title: Безперервна анімація елементів за допомогою властивості Infinite Animation Count
challengeType: 0
videoUrl: 'https://scrimba.com/c/cVJDVfq'
forumTopicId: 301041
dashedName: animate-elements-continually-using-an-infinite-animation-count
---
# --description--
Попередні завдання стосувалися використання деяких властивостей анімації та правила `@keyframes`. Іншою властивістю анімації є `animation-iteration-count`, яка дозволяє вам контролювати, скільки разів буде повторюватися анімація. До прикладу:
```css
animation-iteration-count: 3;
```
У цьому випадку анімація зупиниться лише після 3-го запуску, але її можна зробити безперервною, якщо задати значення `infinite`.
# --instructions--
Щоб м'яч стрибав безперервно, змініть властивість `animation-iteration-count` на `infinite`.
# --hints--
Властивості `animation-iteration-count` має бути надано значення `infinite`.
```js
assert($('#ball').css('animation-iteration-count') == 'infinite');
```
# --seed--
## --seed-contents--
```html
<style>
#ball {
width: 100px;
height: 100px;
margin: 50px auto;
position: relative;
border-radius: 50%;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
animation-name: bounce;
animation-duration: 1s;
animation-iteration-count: 3;
}
@keyframes bounce{
0% {
top: 0px;
}
50% {
top: 249px;
width: 130px;
height: 70px;
}
100% {
top: 0px;
}
}
</style>
<div id="ball"></div>
```
# --solutions--
```html
<style>
#ball {
width: 100px;
height: 100px;
margin: 50px auto;
position: relative;
border-radius: 50%;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
animation-name: bounce;
animation-duration: 1s;
animation-iteration-count: infinite;
}
@keyframes bounce{
0% {
top: 0px;
}
50% {
top: 249px;
width: 130px;
height: 70px;
}
100% {
top: 0px;
}
}
</style>
<div id="ball"></div>
```

View File

@@ -0,0 +1,155 @@
---
id: 587d78a8367417b2b2512ae6
title: Анімація елементів зі змінною швидкістю
challengeType: 0
videoUrl: 'https://scrimba.com/c/cnpWZc9'
forumTopicId: 301042
dashedName: animate-multiple-elements-at-variable-rates
---
# --description--
У попередньому завданні ви змінили швидкість анімації для двох елементів зі схожою анімацією, змінивши їхні правила `@keyframes`. Ви можете досягти тієї ж мети, маніпулюючи `animation-duration` кількох елементів.
В анімації, що виконується в редакторі коду, представлено три зірки на небі, які безперервно миготять з однаковою швидкістю. Щоб вони мерехтіли не синхронно, ви можете встановити властивість `animation-duration` для різних значень у кожному елементі.
# --instructions--
Встановіть `animation-duration` елементів класу `star-1`, `star-2`, і `star-3` на 1, 0.9 та 1.1 секунди відповідно.
# --hints--
Так `animation-duration` властивість для зірки класу `star-1` має становити 1 секунду.
```js
assert($('.star-1').css('animation-duration') == '1s');
```
Тоді як `animation-duration` властивість для зірки класу `star-2` має становити 0.9 секунди.
```js
assert($('.star-2').css('animation-duration') == '0.9s');
```
А `animation-duration` властивість для зірки класу `star-3` має складати 1.1 секунди.
```js
assert($('.star-3').css('animation-duration') == '1.1s');
```
# --seed--
## --seed-contents--
```html
<style>
.stars {
background-color: white;
height: 30px;
width: 30px;
border-radius: 50%;
animation-iteration-count: infinite;
}
.star-1 {
margin-top: 15%;
margin-left: 60%;
animation-duration: 1s;
animation-name: twinkle;
}
.star-2 {
margin-top: 25%;
margin-left: 25%;
animation-duration: 1s;
animation-name: twinkle;
}
.star-3 {
margin-top: 10%;
margin-left: 50%;
animation-duration: 1s;
animation-name: twinkle;
}
@keyframes twinkle {
20% {
transform: scale(0.5);
opacity: 0.5;
}
}
#back {
position: fixed;
padding: 0;
margin: 0;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(black, #000099, #66c2ff, #ffcccc, #ffeee6);
}
</style>
<div id="back"></div>
<div class="star-1 stars"></div>
<div class="star-2 stars"></div>
<div class="star-3 stars"></div>
```
# --solutions--
```html
<style>
.stars {
background-color: white;
height: 30px;
width: 30px;
border-radius: 50%;
animation-iteration-count: infinite;
}
.star-1 {
margin-top: 15%;
margin-left: 60%;
animation-duration: 1s;
animation-name: twinkle;
}
.star-2 {
margin-top: 25%;
margin-left: 25%;
animation-duration: 0.9s;
animation-name: twinkle;
}
.star-3 {
margin-top: 10%;
margin-left: 50%;
animation-duration: 1.1s;
animation-name: twinkle;
}
@keyframes twinkle {
20% {
transform: scale(0.5);
opacity: 0.5;
}
}
#back {
position: fixed;
padding: 0;
margin: 0;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(black, #000099, #66c2ff, #ffcccc, #ffeee6);
}
</style>
<div id="back"></div>
<div class="star-1 stars"></div>
<div class="star-2 stars"></div>
<div class="star-3 stars"></div>
```

View File

@@ -0,0 +1,56 @@
---
id: 587d78a3367417b2b2512ad0
title: Вирівнювання елемента горизонтально по центру з використанням властивості margin
challengeType: 0
videoUrl: 'https://scrimba.com/c/cyLJqU4'
forumTopicId: 301043
dashedName: center-an-element-horizontally-using-the-margin-property
---
# --description--
Ще однією технікою вирівнювання є розташувати блок-елемент горизонтально по центру. Одним зі способів це зробити є встановити властивість `margin` для значення "auto".
Цей метод працює і для зображень. Зображення є вбудованими (inline) елементами за замовчуванням, але їх можна зробити елементами-блоками, якщо надати властивості `display` значення `block`.
# --instructions--
Відцентруйте `div` на сторінці, додавши `margin` властивість із значенням `auto`.
# --hints--
Властивість `margin` для `div` потрібно встановити на `auto`.
```js
assert(new __helpers.CSSHelp(document).getStyle('div')?.margin === 'auto');
```
# --seed--
## --seed-contents--
```html
<style>
div {
background-color: blue;
height: 100px;
width: 100px;
}
</style>
<div></div>
```
# --solutions--
```html
<style>
div {
background-color: blue;
height: 100px;
width: 100px;
margin: auto;
}
</style>
<div></div>
```

View File

@@ -0,0 +1,77 @@
---
id: 587d781e367417b2b2512ac9
title: Змінити відносну позицію елемента
challengeType: 0
videoUrl: 'https://scrimba.com/c/czVmMtZ'
forumTopicId: 301044
dashedName: change-an-elements-relative-position
---
# --description--
CSS сприймає кожний елемент HTML як власний блок, який зазвичай називають <dfn>CSS Box Model</dfn>. Елементи-блоки автоматично переміщуються на новий рядок (такий як заголовок, параграф, сектор), тоді як вбудовані елементи можуть бути оточені іншими матеріалами (такими як зображення або інтервали). У такому разі шаблон елементів, що використовується за замовчуванням, називається <dfn>normal flow</dfn> документа, але CSS пропонує властивість position (розміщення), щоб змінити його.
Коли елементу задана властивість `relative`, що дозволяє вам визначити, як має рухатися CSS *relative* відносно свого поточного розміщення у стандартному блоці сторінки. Разом з CSS властивість offset (розміщення) може бути `left` або `right`, і `top` або `bottom`. Це вказує на кількість пікселів, відсотків або em, необхідних для переміщення елементу *away* у стандартну позицію. Ось приклад того, як пересунути параграф на 10 пікселів вгору:
```css
p {
position: relative;
bottom: 10px;
}
```
Змінюючи позицію елементу на відносну, ви не прибираєте елемент зі стандартного блоку - інші об'єкти на сторінці розташовані так, ніби елемент не змінював свого положення за замовчуванням.
**Примітка:** Зміна розташування дозволяє вам краще оперувати візуальним шаблоном сторінки. Пам'ятайте, що незважаючи на положення елементів, нижча розмітка HTML повинна бути організована і мати сенс при читанні зверху знизу. Саме так користувачі і порушеннями зору (які покладаються на допоміжні пристрої, такі як зчитувачі екрану) отримують доступ до ваших матеріалів.
# --instructions--
Змініть `position` для `h2` на `relative`, та скористайтеся властивістю offset (розміщення) для CSS, задля переміщення на 15 пікселів від `top`, тобто стандартного блоку. Перевірте, чи не змінилося розташування інших елементів відносно h1 та p.
# --hints--
Елемент `h2` повинен мати властивість `position` в позиції `relative`.
```js
assert($('h2').css('position') == 'relative');
```
Ваш код має використовувати зсув CSS, щоб змістити `h2` на 15 пікселів від його стандартного розташування відносно `top`.
```js
assert($('h2').css('top') == '15px');
```
# --seed--
## --seed-contents--
```html
<style>
h2 {
}
</style>
<body>
<h1>On Being Well-Positioned</h1>
<h2>Move me!</h2>
<p>I still think the h2 is where it normally sits.</p>
</body>
```
# --solutions--
```html
<style>
h2 {
position: relative;
top: 15px;
}
</style>
<body>
<h1>On Being Well-Positioned</h1>
<h2>Move me!</h2>
<p>I still think the h2 is where it normally sits.</p>
</body>
```

View File

@@ -0,0 +1,127 @@
---
id: 587d78a8367417b2b2512ae7
title: Змінити час анімації за допомогою ключових слів
challengeType: 0
videoUrl: 'https://scrimba.com/c/cJKvwCM'
forumTopicId: 301045
dashedName: change-animation-timing-with-keywords
---
# --description--
В анімаціях CSS, властивість `animation-timing-function` контролює наскільки швидко змінюється тривалість анімації елементу. Якщо анімацією є авто, яке за певний час переміщується з точки А у точку Б (властивість `animation-duration`), то властивість `animation-timing-function` відповідатиме за те, як пришвидшується або уповільнюється його швидкість.
Існує певний набір готових ключових слів, які містять найпоширеніші завдання. Наприклад, якщо значення за замовчуванням - `ease`, то анімація починається повільно, на середині прискорюється і знову уповільнюється вкінці. Інші завдання відповідають за властивість `ease-out`, при якій анімація починається швидко і сповільнюються вкінці, властивість `ease-in`, де анімація починається повільно і прискорюється вкінці, та властивість `linear`, яка надає анімації постійну незмінну швидкість.
# --instructions--
До кожного елементу з id `ball1` та `ball2` додайте властивість `animation-timing-function`, та для `#ball1` встановіть властивість `linear`, а до `#ball2` додайте `ease-out`. Зверніть увагу на те, як по різному рухаються анімовані елементи, при чому анімація зупиняється одночасно, якщо властивість `animation-duration` кожного елемента встановлено на 2 секунди.
# --hints--
Значення властивості `animation-timing-function` елементів з id `ball1` має бути `linear`.
```js
const ball1Animation = __helpers.removeWhiteSpace(
$('#ball1').css('animation-timing-function')
);
assert(ball1Animation == 'linear' || ball1Animation == 'cubic-bezier(0,0,1,1)');
```
Значення властивості `animation-timing-function` для елементів з id `ball2` має бути `ease-out`.
```js
const ball2Animation = __helpers.removeWhiteSpace(
$('#ball2').css('animation-timing-function')
);
assert(
ball2Animation == 'ease-out' || ball2Animation == 'cubic-bezier(0,0,0.58,1)'
);
```
# --seed--
## --seed-contents--
```html
<style>
.balls {
border-radius: 50%;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
position: fixed;
width: 50px;
height: 50px;
margin-top: 50px;
animation-name: bounce;
animation-duration: 2s;
animation-iteration-count: infinite;
}
#ball1 {
left:27%;
}
#ball2 {
left:56%;
}
@keyframes bounce {
0% {
top: 0px;
}
100% {
top: 249px;
}
}
</style>
<div class="balls" id="ball1"></div>
<div class="balls" id="ball2"></div>
```
# --solutions--
```html
<style>
.balls {
border-radius: 50%;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
position: fixed;
width: 50px;
height: 50px;
margin-top: 50px;
animation-name: bounce;
animation-duration: 2s;
animation-iteration-count: infinite;
}
#ball1 {
left:27%;
animation-timing-function: linear;
}
#ball2 {
left:56%;
animation-timing-function: ease-out;
}
@keyframes bounce {
0% {
top: 0px;
}
100% {
top: 249px;
}
}
</style>
<div class="balls" id="ball1"></div>
<div class="balls" id="ball2"></div>
```

View File

@@ -0,0 +1,81 @@
---
id: 587d78a3367417b2b2512acf
title: Змініть розташування елементів, які перекриваються, за допомогою властивості z-index
challengeType: 0
videoUrl: 'https://scrimba.com/c/cM94aHk'
forumTopicId: 301046
dashedName: change-the-position-of-overlapping-elements-with-the-z-index-property
---
# --description--
Коли елементи розташовані з перекриттям (тобто використовується `position: absolute | relative | fixed | sticky`), елемент, що з'явився пізніше в розмітці HTML, буде за замовчуванням знаходитися над іншими. Однак властивість `z-index` може впорядкувати розташування елементів, які накладаються один на одного. Це значення має бути цілим числом, а не дробом, а більші значення властивості `z-index` рухають його вище відносно менших значень.
# --instructions--
Додайте властивість `z-index` до елемента з назвою класу `first` (червоний прямокутник), встановіть значення 2, щоб він перекрив інший елемент (блакитний прямокутник).
# --hints--
Елемент з класом `first` повинен мати значення `z-index`, із значенням 2.
```js
assert($('.first').css('z-index') == '2');
```
# --seed--
## --seed-contents--
```html
<style>
div {
width: 60%;
height: 200px;
margin-top: 20px;
}
.first {
background-color: red;
position: absolute;
}
.second {
background-color: blue;
position: absolute;
left: 40px;
top: 50px;
z-index: 1;
}
</style>
<div class="first"></div>
<div class="second"></div>
```
# --solutions--
```html
<style>
div {
width: 60%;
height: 200px;
margin-top: 20px;
}
.first {
background-color: red;
position: absolute;
z-index: 2;
}
.second {
background-color: blue;
position: absolute;
left: 40px;
top: 50px;
z-index: 1;
}
</style>
<div class="first"></div>
<div class="second"></div>
```

View File

@@ -0,0 +1,76 @@
---
id: 587d78a5367417b2b2512ad6
title: Створити поступовий лінійний градієнт CSS
challengeType: 0
videoUrl: 'https://scrimba.com/c/cg4dpt9'
forumTopicId: 301047
dashedName: create-a-gradual-css-linear-gradient
---
# --description--
Використання кольору для елементів HTML не обмежується лише одним відтінком. CSS надає можливість використовувати переходи між кольорами, які відомі як градієнти на елементах. Це дозволено робити через функцію `background` property's `linear-gradient()`. Ось загальний порядок:
```css
background: linear-gradient(gradient_direction, color 1, color 2, color 3, ...);
```
Перший аргумент вказує напрямок, від якого починається перехід кольору - його можна позначити як ступінь, де `90deg` робить горизонтальний градієнт (зліва направо) і `45deg` робить градієнт по діагоналі (зліва знизу вправо вверх). Наступні аргументи визначають порядок кольорів, які використовуються в градієнті.
Наприклад:
```css
background: linear-gradient(90deg, red, yellow, rgb(204, 204, 255));
```
# --instructions--
Використовуйте `linear-gradient()` для елемента `div`, і встановіть йому напрям 35 градусів для зміни кольору від `#CCFFFF` до `#FFCCCC`.
# --hints--
Елемент `div` повинен мати a `linear-gradient` `background` з вказаним напрямом і кольорами.
```js
assert(
$('div')
.css('background-image')
.match(
/linear-gradient\(35deg, rgb\(204, 255, 255\), rgb\(255, 204, 204\)\)/gi
)
);
```
# --seed--
## --seed-contents--
```html
<style>
div {
border-radius: 20px;
width: 70%;
height: 400px;
margin: 50px auto;
}
</style>
<div></div>
```
# --solutions--
```html
<style>
div {
border-radius: 20px;
width: 70%;
height: 400px;
margin: 50px auto;
background: linear-gradient(35deg, #CCFFFF, #FFCCCC);
}
</style>
<div></div>
```

View File

@@ -0,0 +1,89 @@
---
id: 587d78a6367417b2b2512add
title: Створення графіки за допомогою CSS
challengeType: 0
videoUrl: 'https://scrimba.com/c/cEDWPs6'
forumTopicId: 301048
dashedName: create-a-graphic-using-css
---
# --description--
Керуючи різними селекторами та властивостями, ви можете створювати цікаві фігури. Однією з найпростіших фігур є фігура півмісяця. Для цього завдання вам необхідно використати властивість `box-shadow`, яка задає тінь елементу, та властивість `border-radius`, яка контролює округлення кутів елементу.
Ви створите круглий, прозорий об'єкт з чіткою тінню, що трохи зсунута в сторону і повторює форму півмісяця.
Щоб створити круглий об'єкт, необхідно задати властивості `border-radius` значення 50%.
Як ви могли помітити в попередньому завданні, властивість `box-shadow` приймає значення: `offset-x`, `offset-y`, `blur-radius`, `spread-radius` і значення кольору. Значення `blur-radius` і `spread-radius` необов'язкові.
# --instructions--
Керуйте квадратним елементом у редакторі, щоб створити форму місяця. Спочатку змініть `background-color` на `transparent`, тоді надайте властивості `border-radius` значення 50%, щоб створити круглу форму. Вкінці змініть властивість `box-shadow`, щоб надати властивості `offset-x` значення 25 пікселів, властивості `offset-y` - 10 пікселів, `blur-radius` - 0, `spread-radius` - 0, а за допомогою властивості `blue` встановити колір.
# --hints--
Значення властивості `background-color` має бути встановлено на `transparent`.
```js
assert(code.match(/background-color:\s*?transparent;/gi));
```
Значення властивості `border-radius` має бути встановлено на `50%`.
```js
assert(code.match(/border-radius:\s*?50%;/gi));
```
Значення властивості `box-shadow` повинно мати значення 25 пікселів для `offset-x`, 10 пікселів для `offset-y`, 0 для `blur-radius`, 0 для `spread-radius`, та колір має бути задано за допомогою `blue`.
```js
assert(
code.match(/box-shadow:\s*?25px\s+?10px\s+?0(px)?\s+?0(px)?\s+?blue\s*?;/gi)
);
```
# --seed--
## --seed-contents--
```html
<style>
.center {
position: absolute;
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100px;
height: 100px;
background-color: blue;
border-radius: 0px;
box-shadow: 25px 10px 10px 10px green;
}
</style>
<div class="center"></div>
```
# --solutions--
```html
<style>
.center {
position: absolute;
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100px;
height: 100px;
background-color: transparent;
border-radius: 50%;
box-shadow: 25px 10px 0 0 blue;
}
</style>
<div class="center"></div>
```

View File

@@ -0,0 +1,122 @@
---
id: 587d781b367417b2b2512abb
title: Створення горизонтального рядка за допомогою елемента hr
challengeType: 0
videoUrl: 'https://scrimba.com/c/c3bR8t7'
forumTopicId: 301049
dashedName: create-a-horizontal-line-using-the-hr-element
---
# --description--
Ви можете використовувати теґ `hr`, щоб додати горизонтальний рядок до ширини елемента, який він містить. Цей теґ можна використовувати для того, щоб позначити зміну теми або візуально розділити групи контенту.
# --instructions--
Додайте тег `hr` під`h4`, який містить заголовок карти.
**Примітка:** У HTML, `hr` - само завершувальний тег і тому тег, що окремо закривається - не потрібен.
# --hints--
Ваш код має додати тег `hr` у текст розмітки.
```js
assert($('hr').length == 1);
```
Тег `hr` повинен бути між заголовком та абзацом.
```js
assert(code.match(/<\/h4>\s*?<hr(>|\s*?\/>)\s*?<p>/gi));
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4><s>Google</s>Alphabet</h4>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4><s>Google</s>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,136 @@
---
id: 587d78a7367417b2b2512ae1
title: Створення руху за допомогою CSS анімації
challengeType: 0
videoUrl: 'https://scrimba.com/c/c7amZfW'
forumTopicId: 301051
dashedName: create-movement-using-css-animation
---
# --description--
Коли елементи мають певну `position`, наприклад `fixed` або `relative`, `right`, `left`, `top`, і `bottom` CSS офсет властивості зміщення можуть застосовуватись до анімацій, щоб створювати рух.
Як показано на прикладі нижче, ви можете перемістити об'єкт вниз, а потім вгору, якщо встановити його на 50px `50%` властивості `top`, але спочатку встановити 0px (`0%`), і останнє — (`100%`).
```css
@keyframes rainbow {
0% {
background-color: blue;
top: 0px;
}
50% {
background-color: green;
top: 50px;
}
100% {
background-color: yellow;
top: 0px;
}
}
```
# --instructions--
Додавання горизонтального руху до `div` анімації. Використовуючи властивість `left`, додайте до правила `@keyframes`, щоб веселка починалась на 0 pixels в `0%`, рухалась до 25 pixels в `50%` і закінчилась на -25 pixels в `100%`. Не переміщайте властивість `top` у редактор - анімація повинна мати як вертикальний, так і горизонтальний рух.
# --hints--
0px офсет `left` повинен використовуватись з правилом `@keyframes` для `0%`.
```js
assert(code.match(/[^50]0%\s*?{[\s\S]*?left:\s*?0px(;[\s\S]*?|\s*?)}/gi));
```
25px офсет `left` повинен використовуватись з правилом `@keyframes` для `50%`.
```js
assert(code.match(/50%\s*?{[\s\S]*?left:\s*?25px(;[\s\S]*?|\s*?)}/gi));
```
-25px офсет `left` повинен використовуватись з правилом `@keyframes` для `100%`.
```js
assert(code.match(/100%\s*?{[\s\S]*?left:\s*?-25px(;[\s\S]*?|\s*?)}/gi));
```
# --seed--
## --seed-contents--
```html
<style>
div {
height: 40px;
width: 70%;
background: black;
margin: 50px auto;
border-radius: 5px;
position: relative;
}
#rect {
animation-name: rainbow;
animation-duration: 4s;
}
@keyframes rainbow {
0% {
background-color: blue;
top: 0px;
}
50% {
background-color: green;
top: 50px;
}
100% {
background-color: yellow;
top: 0px;
}
}
</style>
<div id="rect"></div>
```
# --solutions--
```html
<style>
div {
height: 40px;
width: 70%;
background: black;
margin: 50px auto;
border-radius: 5px;
position: relative;
}
#rect {
animation-name: rainbow;
animation-duration: 4s;
}
@keyframes rainbow {
0% {
background-color: blue;
top: 0px;
left: 0px;
}
50% {
background-color: green;
top: 50px;
left: 25px;
}
100% {
background-color: yellow;
top: 0px;
left: -25px;
}
}
</style>
<div id="rect"></div>
```

View File

@@ -0,0 +1,50 @@
---
id: 587d78a5367417b2b2512ad8
title: Створити текстуру, додавши тонкий шаблон у вигляді фонового зображення
challengeType: 0
videoUrl: 'https://scrimba.com/c/cQdwJC8'
forumTopicId: 301052
dashedName: create-texture-by-adding-a-subtle-pattern-as-a-background-image
---
# --description--
Один із варіантів додати текстуру та надати фону цікавості і, щоб зробити його ще більше - це додати тонкий шаблон. Головне - це баланс, так як ви ж не не хочете, щоб фон дуже виділявся, заберіть його з переднього плану. Властивість `background` підтримує функцію `url()` для того, щоб посилатися на зображення вибраної текстури або шаблону. Посилання загорнуте в лапки всередині дужок.
# --instructions--
Використання URL-адреси `https://cdn-media-1.freecodecamp.org/imgr/MJAkxbh.png`, встановіть `background` для всієї сторінки селектора `body`.
# --hints--
Ваш елемент `body` повинен містити властивості `background`, встановленого за заданим посиланням `url()`.
```js
assert(
code.match(
/background(-image)?:\s*?url\(\s*("|'|)https:\/\/cdn-media-1\.freecodecamp\.org\/imgr\/MJAkxbh\.png\2\s*\)/gi
)
);
```
# --seed--
## --seed-contents--
```html
<style>
body {
}
</style>
```
# --solutions--
```html
<style>
body {
background: url("https://cdn-media-1.freecodecamp.org/imgr/MJAkxbh.png");
}
</style>
```

View File

@@ -0,0 +1,118 @@
---
id: 587d7791367417b2b2512ab3
title: Створення візуального балансу за допомогою властивості вирівнювання тексту
challengeType: 0
videoUrl: 'https://scrimba.com/c/c3b4EAp'
forumTopicId: 301053
dashedName: create-visual-balance-using-the-text-align-property
---
# --description--
Цей розділ навчальної програми присвячений застосуванню візуального дизайну. Перша група завдань спирається на задане розміщення карти, показуючи низку основних принципів.
Текст часто є значною частиною Web контенту. У CSS є кілька варіантів того, як можна вирівняти його за допомогою властивості `text-align`.
`text-align: justify;` вирівнює текст за шириною.
`text-align: center;` вирівнює текст по центру.
`text-align: right;` вирівнює текст за правим краєм.
А `text-align: left;` (за замовчуванням) вирівнює текст за лівим краєм.
# --instructions--
Розмістіть текст теґу `h4` "Google" з вирівнюванням по центру. Тоді вирівняйте теґ абзацу, який містить інформацію про заснування Google, за шириною.
# --hints--
Ваш код повинен використовувати властивість вирівнювання тексту в тезі `h4`, щоб вирівняти його по центру (`center`).
```js
assert($('h4').css('text-align') == 'center');
```
Ваш код повинен використовувати властивість вирівнювання тексту в тезі `p` tag, щоб вирівняти його за шириною (`justify`).
```js
assert($('p').css('text-align') == 'justify');
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
}
p {
}
.links {
margin-right: 20px;
}
.fullCard {
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
}
p {
text-align: justify;
}
.links {
margin-right: 20px;
}
.fullCard {
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,95 @@
---
id: 587d78a7367417b2b2512ae2
title: Створити візуальний напрямок прибравши елемент зліва направо
challengeType: 0
videoUrl: 'https://scrimba.com/c/cGJqqAE'
forumTopicId: 301054
dashedName: create-visual-direction-by-fading-an-element-from-left-to-right
---
# --description--
Для цього завдання ви зміните `opacity` анімованого елемента, тому він поступово зникає, коли досягає правої частини екрану.
У відображеній анімації, округлий елемент з фоновим градієнтом рухається праворуч до позначки 50% анімації, як правило `@keyframes`.
# --instructions--
Виділіть елемент з ідентифікатором `ball` і додайте властивість `opacity` у значення 0.1 `50%`, тому цей елемент зникає, так як рухається праворуч.
# --hints--
Правило `keyframes` для затухання повинне встановити властивість `opacity` на 0.1 на 50%.
```js
assert(
code.match(
/@keyframes fade\s*?{\s*?50%\s*?{\s*?(?:left:\s*?60%;\s*?opacity:\s*?0?\.1;|opacity:\s*?0?\.1;\s*?left:\s*?60%;)/gi
)
);
```
# --seed--
## --seed-contents--
```html
<style>
#ball {
width: 70px;
height: 70px;
margin: 50px auto;
position: fixed;
left: 20%;
border-radius: 50%;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
animation-name: fade;
animation-duration: 3s;
}
@keyframes fade {
50% {
left: 60%;
}
}
</style>
<div id="ball"></div>
```
# --solutions--
```html
<style>
#ball {
width: 70px;
height: 70px;
margin: 50px auto;
position: fixed;
left: 20%;
border-radius: 50%;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
animation-name: fade;
animation-duration: 3s;
}
@keyframes fade {
50% {
left: 60%;
opacity: 0.1;
}
}
</style>
<div id="ball"></div>
```

View File

@@ -0,0 +1,134 @@
---
id: 587d781c367417b2b2512abf
title: Зменшіть непрозорість елемента
challengeType: 0
videoUrl: 'https://scrimba.com/c/c7aKqu4'
forumTopicId: 301055
dashedName: decrease-the-opacity-of-an-element
---
# --description--
Властивість `opacity` у CSS використовується для налаштування непрозорості або, навпаки, прозорості об'єкта.
<blockquote>Значення 1 зовсім непрозоре, <br> Значення 0.5 напівпрозоре.<br>Значення 0 повністю прозоре.</blockquote>
Подане значення буде застосовуватися до всього елемента: чи то зображення з певною прозорістю, чи то колір переднього плану чи колір тла для текстового блоку.
# --instructions--
Встановіть `opacity` якірних теґів на значення 0.7 за допомогою класу `links`.
# --hints--
Ваш код має встановити властивість `opacity` на значення 0.7 на якірних теґах, обравши клас `links`.
```js
assert(
/\.links\s*{([\s\S]*?;)*\s*opacity\s*:\s*0*\.70*\s*(;[\s\S]*?|\s*)}/.test(
$('style').text()
)
);
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
background-color: rgba(45, 45, 45, 0.1);
padding: 10px;
font-size: 27px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
#thumbnail {
box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard" id="thumbnail">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
background-color: rgba(45, 45, 45, 0.1);
padding: 10px;
font-size: 27px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
opacity: 0.7;
}
#thumbnail {
box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard" id="thumbnail">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,90 @@
---
id: 587d78a3367417b2b2512ad1
title: Дізнайтеся більше про додаткові кольори
challengeType: 0
videoUrl: 'https://scrimba.com/c/c2MD3Tr'
forumTopicId: 301056
dashedName: learn-about-complementary-colors
---
# --description--
Теорія кольору та її вплив на дизайн є широкою темою, і лише невелика її частина висвітлена у поданих завданнях. Колір може привернути увагу до інформації, викликати певні емоції чи допомогти у візуальному оформлені веб-сайту. Різноманітні комбінації кольорів можуть змінити увесь вигляд вашу сайту, і добір правильної кольорової палітри потребує чимало зусиль.
Колірне коло - це корисний інструмент, що показує, як співвідносяться кольори; тут схожі відтінки знаходяться поруч, і чим більше вони відрізняються, тим далі один від одного знаходяться. Якщо у колірному колі два кольори розташовані навпроти, вони називаються додатковими. Їхньою особливістю є те, що при комбінуванні, такі кольори "спростовують" один одного і утворюють сірий колір. Однак, розташовані поруч, вони стають яскравішими і створюють сильний візуальний контраст.
Ось декілька прикладів додаткових кольорів з їхніми hex-кодами:
<blockquote>червоний (#FF0000) та блакитний (#00FFFF)<br>зелений (#00FF00) та пурпуровий (#FF00FF)<br>синій (#0000FF) та жовтий (#FFFF00)</blockquote>
Ця модель має різні основні і додаткові кольори і відрізняється від застарілої колірної моделі RYB, якої багатьох з нас навчали у школі. Новітня колірна теорія використовує додаткову модель RGB (як показано на екрані комп'ютера) та субтрактивну колірну модель CMY(K) (використовується у поліграфії). Більше інформації про цю складну тему читайте [тут](https://en.wikipedia.org/wiki/Color_model).
Існує безліч онлайн-інструментів для підбору кольору, у яких є опція вибору додаткового кольору.
**Примітка:** Використання кольору може бути потужним способом у створенні візуально цікавої сторінки. Проте колір - не єдиний спосіб передачі важливої інформації, адже користувачі із вадами зору можуть її не зрозуміти. Це питання буде розглядатися більш детально у завданні Застосування Спеціальних можливостей.
# --instructions--
Змініть властивість `background-color` для класів `blue` та `yellow` на відповідні їм кольори. Зверніть увагу, як по-іншому кольори виглядають порівняно один з одним і у порівнянні з білим фоном.
# --hints--
Елемент `div` класу `blue` повинне мати властивість `background-color` значення синього кольору.
```js
assert($('.blue').css('background-color') == 'rgb(0, 0, 255)');
```
Елемент `div` класу `yellow` повинен мати властивість `background-color` значення жовтого кольору.
```js
assert($('.yellow').css('background-color') == 'rgb(255, 255, 0)');
```
# --seed--
## --seed-contents--
```html
<style>
body {
background-color: #FFFFFF;
}
.blue {
background-color: #000000;
}
.yellow {
background-color: #000000;
}
div {
display: inline-block;
height: 100px;
width: 100px;
}
</style>
<div class="blue"></div>
<div class="yellow"></div>
```
# --solutions--
```html
<style>
body {
background-color: #FFFFFF;
}
.blue {
background-color: blue;
}
.yellow {
background-color: yellow;
}
div {
display: inline-block;
height: 100px;
width: 100px;
}
</style>
<div class="blue"></div>
<div class="yellow"></div>
```

View File

@@ -0,0 +1,114 @@
---
id: 587d78a4367417b2b2512ad2
title: Дізнайтеся більше про третинні кольори (Tertiary)
challengeType: 0
forumTopicId: 301057
dashedName: learn-about-tertiary-colors
---
# --description--
Комп'ютерні монітори та екрани пристрою створюють різні кольори, поєднуючи кількість червоного, зеленого та синього світла. У сучасній теорії кольорів це відоме як додаткова колірна модель RGB. Червоний (red - R), зелений (green - G) та синій (blue - B) — основні кольори. Змішування двох основних кольорів створює вторинні кольори: блакитний (G + B), пурпурний (R + B) і жовтий (R + G). Ви бачили ці кольори у завданні про дадаткові кольори. Ці вторинні кольори є доповненням до основного кольору, який не використовується при їх створенні, і є протилежними до основного кольору на колірному колі. Наприклад, пурпуровий — це колір від змішування червоного та синього кольорів і є компліментарним кольором до зеленого.
Третинні кольори є результатом поєднання основного кольору з одним із вторинним сусіднім кольором. Наприклад, у колірній моделі RGB червоний (первинний колір) та жовтий (вторинний колір) утворюють оранжевий (третинний колір). Це додасть ще шість кольорів до простого колірного кола загалом їх дванадцять.
Існують різні методи вибору різних кольорів, що в результаті стають гармонійним поєднанням дизайну. Наприклад, використання третинних кольорів можливе у спліт-додатковій колірній схемі. Ця схема починається з базового кольору, а потім поєднується з двома кольорами, які є сусідніми до його протилежного кольору. Ці три кольори утворюють сильний зоровий контраст у дизайні, але є менш вираженими, ніж використання двох доповняльних кольорів.
Три кольори утворені за допомогою комплементарної схеми:
<table class='table table-striped'><thead><tr><th>Колір</th><th>Шістнадцятковий код кольору</th></tr></thead><thead></thead><tbody><tr><td>оранжевий</td><td>#FF7F00</td></tr><tr><td>бірюзовий</td><td>#00FFFF</td></tr><tr><td>малиновий</td><td>#FF007F</td></tr></tbody></table>
# --instructions--
Змініть характеристики класів `background-color`, `orange`, `cyan` і `raspberry` на відповідні кольори. Переконайтеся, що ви використовуєте шістнадцяткові коди, а не назви кольорів.
# --hints--
У `div` елементу класу `orange` повинен бути оранжевий `background-color`.
```js
assert($('.orange').css('background-color') == 'rgb(255, 127, 0)');
```
У `div` елементу класу `cyan` фоновий колір має бути бірюзовий `background-color`.
```js
assert($('.cyan').css('background-color') == 'rgb(0, 255, 255)');
```
У `div` елементу класу `raspberry` повинен бути малиновий `background-color`.
```js
assert($('.raspberry').css('background-color') == 'rgb(255, 0, 127)');
```
Усі значення `background-color` для класів кольорів мають бути шістнадцятковими кодами, а не назвами кольорів.
```js
assert(!/background-color:\s(orange|cyan|raspberry)/.test(code));
```
# --seed--
## --seed-contents--
```html
<style>
body {
background-color: #FFFFFF;
}
.orange {
background-color: #000000;
}
.cyan {
background-color: #000000;
}
.raspberry {
background-color: #000000;
}
div {
height: 100px;
width: 100px;
margin-bottom: 5px;
}
</style>
<div class="orange"></div>
<div class="cyan"></div>
<div class="raspberry"></div>
```
# --solutions--
```html
<style>
body {
background-color: #FFFFFF;
}
.orange {
background-color: #FF7F00;
}
.cyan {
background-color: #00FFFF;
}
.raspberry {
background-color: #FF007F;
}
div {
height: 100px;
width: 100px;
margin-bottom: 5px;
}
</style>
<div class="orange"></div>
<div class="cyan"></div>
<div class="raspberry"></div>
```

View File

@@ -0,0 +1,136 @@
---
id: 587d78a9367417b2b2512ae8
title: Дізнайтеся, як працюють криві Безьє
challengeType: 0
videoUrl: 'https://scrimba.com/c/c9bDrs8'
forumTopicId: 301058
dashedName: learn-how-bezier-curves-work
---
# --description--
В останньому завданні були представлені властивості `animation-timing-function` та декілька ключових слів, які змінюють швидкість анімації. CSS пропонує інші варіанти, окрім ключових слів, які забезпечують ще точніший контроль над відтворенням анімації за допомогою кривих Безьє.
У анімаціях CSS криві Безьє використовуються з функцією `cubic-bezier`. Форма кривої демонструє, як буде відтворена анімація. Крива лежить на координатній системі 1 до 1. Вісь x цієї координатної системи позначає тривалість анімації (уявіть часову шкалу), а вісь y — зміни в анімації.
Функція `cubic-bezier` складається з чотирьох основних точок, які розташовані на координатній сітці 1 на 1: `p0`, `p1`, `p2`, та `p3`. `p0` та `p3` налаштовані для вас: це початкова та кінцева точки, які завжди розташовані відповідно у початку координат (0, 0) та (1, 1). Ви встановлюєте значення x та у для інших двох точок, і їхнє розміщення у координатній сітці задає форму кривої для даної анімації. Усе це виконується мовою CSS, надаючи значення x та y початкам виділення `p1` та `p2` у вигляді: `(x1, y1, x2, y2)`. Підсумовуючи, ось приклад кривої Безьє в коді CSS:
```css
animation-timing-function: cubic-bezier(0.25, 0.25, 0.75, 0.75);
```
У прикладі вище значення x та y рівнозначні (x1 = 0.25 = y1 and x2 = 0.75 = y2), а ми пам'ятаємо з геометрії, що це лінія, яка простягається від початку координат до точки (1, 1). Ця анімація є лінійною зміною елемента протягом тривалості анімації і така ж, як за допомогою ключового слова `linear`. Інакше кажучи, вона змінюється постійно.
# --instructions--
Для елемента з ідентифікатором `ball1` змініть значення властивості `animation-timing-function` з `linear` на його еквівалентне значення функції `cubic-bezier`. Використовуйте значення точки, як у прикладі вище.
# --hints--
Значення властивості `animation-timing-function` для елемента з ідентифікатором `ball1` має бути лінійно-еквівалентним функції `cubic-bezier`.
```js
assert(
$('#ball1').css('animation-timing-function') ==
'cubic-bezier(0.25, 0.25, 0.75, 0.75)'
);
```
Значення властивості `animation-timing-function` для елемента з ідентифікатором `ball2` не повинно змінюватися.
```js
const ball2Animation = __helpers.removeWhiteSpace(
$('#ball2').css('animation-timing-function')
);
assert(
ball2Animation == 'ease-out' || ball2Animation == 'cubic-bezier(0,0,0.58,1)'
);
```
# --seed--
## --seed-contents--
```html
<style>
.balls{
border-radius: 50%;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
position: fixed;
width: 50px;
height: 50px;
margin-top: 50px;
animation-name: bounce;
animation-duration: 2s;
animation-iteration-count: infinite;
}
#ball1 {
left: 27%;
animation-timing-function: linear;
}
#ball2 {
left: 56%;
animation-timing-function: ease-out;
}
@keyframes bounce {
0% {
top: 0px;
}
100% {
top: 249px;
}
}
</style>
<div class="balls" id="ball1"></div>
<div class="balls" id="ball2"></div>
```
# --solutions--
```html
<style>
.balls{
border-radius: 50%;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
position: fixed;
width: 50px;
height: 50px;
margin-top: 50px;
animation-name: bounce;
animation-duration: 2s;
animation-iteration-count: infinite;
}
#ball1 {
left: 27%;
animation-timing-function: cubic-bezier(0.25, 0.25, 0.75, 0.75);
}
#ball2 {
left: 56%;
animation-timing-function: ease-out;
}
@keyframes bounce {
0% {
top: 0px;
}
100% {
top: 249px;
}
}
</style>
<div class="balls" id="ball1"></div>
<div class="balls" id="ball2"></div>
```

View File

@@ -0,0 +1,136 @@
---
id: 587d78a7367417b2b2512adf
title: Дізнайтеся, як працюють CSS @keyframames і властивості анімації
challengeType: 0
videoUrl: 'https://scrimba.com/c/cakprhv'
forumTopicId: 301059
dashedName: learn-how-the-css-keyframes-and-animation-properties-work
---
# --description--
Щоб анімувати елемент, потрібно знати про властивості анімації і правило `@keyframes`. Властивості анімації визначають поведінку анімації і правило `@keyframes` контролює, що відбувається під час цієї анімації. Загалом, існує вісім властивостей анімації. Ми не будемо ускладнювати це завдання і розглянемо спершу дві найважливіші:
`animation-name` встановлює назву анімації, яка пізніше використовується `@keyframes`, щоб вказати CSS, які правила використовуються з якими анімаціями.
`animation-duration` встановлює тривалість анімації.
`@keyframes` це спосіб точно вказати, що відбувається в анімації протягом цієї тривалості. Це робиться надавши властивості CSS певним "кадрам" під час анімації, з відсотками в межах від 0% до 100%. Якщо порівняти це з фільмом, властивості CSS для 0% - це те, як елемент відображається на початковій сцені. Властивості CSS для 100% - це те, як цей елемент виглядає в кінці прямо саме перед тим, як починаються титри. Тоді CSS використовує магію заміни елемента за вказану тривалість для відтворення сцени. Ось приклад, що ілюструє використання `@keyframes` та властивостей анімації:
```css
#anim {
animation-name: colorful;
animation-duration: 3s;
}
@keyframes colorful {
0% {
background-color: blue;
}
100% {
background-color: yellow;
}
}
```
Для елемента з id `anim` фрагмент коду вище встановлює `animation-name` на `colorful` і встановлює `animation-duration` на 3 секунди. Тоді правило `@keyframes` посилається на властивості анімації з назвою `colorful`. Він встановлює синій колір на початку анімації (0%), який перейде в жовтий до кінця анімації (100%). Ви не обмежені лише початковим та кінцевим переходами, ви можете встановити властивості елементу в будь-яких межах між 0% і 100%.
# --instructions--
Створіть анімацію для елемента з id `rect`, встановивши `animation-name` на `rainbow` та `animation-duration` на 4 секунди. Далі, задайте правило `@keyframes` і встановіть голубий `background-color` на початку анімації (`0%`), зелений посередині анімації (`50%`) та жовтий в кінці анімації (`100%`).
# --hints--
Елемент з id `rect` повинен мати властивість `animation-name` зі значенням `rainbow`.
```js
assert($('#rect').css('animation-name') == 'rainbow');
```
Елемент з id `rect` повинен мати `animation-duration` 4 секунд.
```js
assert($('#rect').css('animation-duration') == '4s');
```
Правило `@keyframes` повинно використовувати `animation-name` `rainbow`.
```js
assert(code.match(/@keyframes\s+?rainbow\s*?{/g));
```
Правило `@keyframes` повинно використовувати для `rainbow` `blue` `background-color` при 0%.
```js
assert(code.match(/0%\s*?{\s*?background-color:\s*?blue;\s*?}/gi));
```
Правило `@keyframes` повинно використовувати для `rainbow` `green` `background-color` при 50%.
```js
assert(code.match(/50%\s*?{\s*?background-color:\s*?green;\s*?}/gi));
```
Правило `@keyframes` повинно використовувати для `rainbow` `yellow` `background-color` при 100%.
```js
assert(code.match(/100%\s*?{\s*?background-color:\s*?yellow;\s*?}/gi));
```
# --seed--
## --seed-contents--
```html
<style>
div {
height: 40px;
width: 70%;
background: black;
margin: 50px auto;
border-radius: 5px;
}
#rect {
}
</style>
<div id="rect"></div>
```
# --solutions--
```html
<style>
div {
height: 40px;
width: 70%;
background: black;
margin: 50px auto;
border-radius: 5px;
}
#rect {
animation-name: rainbow;
animation-duration: 4s;
}
@keyframes rainbow {
0% {
background-color: blue;
}
50% {
background-color: green;
}
100% {
background-color: yellow;
}
}
</style>
<div id="rect"></div>
```

View File

@@ -0,0 +1,90 @@
---
id: 587d781e367417b2b2512acb
title: З'єднайте елемент з батьківським елементом за допомогою абсолютної розстановки
challengeType: 0
videoUrl: 'https://scrimba.com/c/cyLJ7c3'
forumTopicId: 301060
dashedName: lock-an-element-to-its-parent-with-absolute-positioning
---
# --description--
Наступним варіантом для властивості CSS `position` є `absolute`, який замикає елемент на місці відносно його батьківського елемента. На відміну від положення `relative`, він видаляє елемент зі звичайного потоку документа, тож об'єкти навколо його ігнорують. Властивості зміщення CSS (вгору або вниз, ліворуч або праворуч) використовуються для налаштування розташування.
Один нюанс з абсолютною розстановкою полягає в тому, що він буде приєднаний до найближчого *positioned* родича. Якщо ви забудете додати правило розстановки до батьківського елемента (зазвичай це відбувається під час використання `position: relative;`), браузер продовжить шукати ланцюжок і за замовчуванням перемикатися на теґ `body`.
# --instructions--
Приєднайте елемент `#searchbar` до правого верхнього кута його батьківського елемента `section`, зазначивши його `position` як `absolute`. Надайте теґам `top` і `right` значення по 50 пікселів.
# --hints--
Елемент `#searchbar` має містити `position`, встановлену на `absolute`.
```js
assert($('#searchbar').css('position') == 'absolute');
```
Ваш код має використовувати зміщення CSS `top` зі значенням 50 пікселів на елементі `#searchbar`.
```js
assert($('#searchbar').css('top') == '50px');
```
Ваш код має використовувати зміщення CSS `right` зі значенням 50 пікселів на елементі `#searchbar`.
```js
assert($('#searchbar').css('right') == '50px');
```
# --seed--
## --seed-contents--
```html
<style>
#searchbar {
}
section {
position: relative;
}
</style>
<body>
<h1>Welcome!</h1>
<section>
<form id="searchbar">
<label for="search">Search:</label>
<input type="search" id="search" name="search">
<input type="submit" name="submit" value="Go!">
</form>
</section>
</body>
```
# --solutions--
```html
<style>
#searchbar {
position: absolute;
top: 50px;
right: 50px;
}
section {
position: relative;
}
</style>
<body>
<h1>Welcome!</h1>
<section>
<form id="searchbar">
<label for="search">Search:</label>
<input type="search" id="search" name="search">
<input type="submit" name="submit" value="Go!">
</form>
</section>
</body>
```

View File

@@ -0,0 +1,120 @@
---
id: 587d781e367417b2b2512acc
title: Заблокувати елемент у вікні браузера з фіксованим розташуванням
challengeType: 0
videoUrl: 'https://scrimba.com/c/c2MDNUR'
forumTopicId: 301061
dashedName: lock-an-element-to-the-browser-window-with-fixed-positioning
---
# --description--
Наступна схема, яку пропонує CSS - позиція `fixed`, яка є категоричним позиціонуванням, що блокує елемент відносно вікна браузера. Схоже до абсолютного розташування, він використовується властивостями зміщення CSS, а також видаляє елемент із стандартного потоку документів. Інші позиції більше не "реалізуються" там, де вони розташовані, що може вимагати деякого коректування макета в інших місцях.
Одна ключова різниця між позиціями `fixed` та `absolute` - елемент з фіксованою позицією не переміститься при прокрутці.
# --instructions--
Навігаційний рядок в коді позначений з id `navbar`. Змінити `position` на `fixed` і компенсувати 0 пікселів `top` та 0 пікселів `eft`. Після того, як ви додали код, прокрутіть до попереднього перегляду вікна, щоб побачити як навігація залишається на місці.
# --hints--
Елемент `#navbar` повинен мати `position` встановлену як `fixed`.
```js
assert($('#navbar').css('position') == 'fixed');
```
Ваш код повинен застосовувати `top` CSS offset в 0 пікселів на елементі `#navbar`.
```js
assert($('#navbar').css('top') == '0px');
```
Ваш код повинен використовувати `left` CSS 0 пікселів на елемент`#navbar`.
```js
assert($('#navbar').css('left') == '0px');
```
# --seed--
## --seed-contents--
```html
<style>
body {
min-height: 150vh;
}
#navbar {
width: 100%;
background-color: #767676;
}
nav ul {
margin: 0px;
padding: 5px 0px 5px 30px;
}
nav li {
display: inline;
margin-right: 20px;
}
a {
text-decoration: none;
}
</style>
<body>
<header>
<h1>Welcome!</h1>
<nav id="navbar">
<ul>
<li><a href="">Home</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>
</header>
<p>I shift up when the #navbar is fixed to the browser window.</p>
</body>
```
# --solutions--
```html
<style>
body {
min-height: 150vh;
}
#navbar {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: #767676;
}
nav ul {
margin: 0px;
padding: 5px 0px 5px 30px;
}
nav li {
display: inline;
margin-right: 20px;
}
a {
text-decoration: none;
}
</style>
<body>
<header>
<h1>Welcome!</h1>
<nav id="navbar">
<ul>
<li><a href="">Home</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>
</header>
<p>I shift up when the #navbar is fixed to the browser window.</p>
</body>
```

View File

@@ -0,0 +1,181 @@
---
id: 587d78a8367417b2b2512ae4
title: Створення анімації серцебиття за допомогою властивості Infinite Animation Count
challengeType: 0
videoUrl: 'https://scrimba.com/c/cDZpDUr'
forumTopicId: 301062
dashedName: make-a-css-heartbeat-using-an-infinite-animation-count
---
# --description--
Ось ще один приклад безперервної анімації з властивістю `animation-iteration-count`, що використовує серце, яке ви створили в попередньому завданні.
Анімація серцебиття тривалістю в одну секунду складається з двох анімованих частин. Елементи `heart` (у тому числі частини `:before` та `:after`) анімуються, щоб змінити розмір за допомогою властивості `transform`, а фон `div` анімується, щоб змінити його колір за допомогою властивості `background`.
# --instructions--
Щоб серце почало битися, додайте властивість `animation-iteration-count` для класу `back` і класу `heart` та задайте значення `infinite`. Селектори `heart:before` та `heart:after` не потребують жодних властивостей анімації.
# --hints--
Властивість `animation-iteration-count` для класу `heart` повинна мати значення `infinite`.
```js
assert($('.heart').css('animation-iteration-count') == 'infinite');
```
Властивість `animation-iteration-count` для класу `back` повинна мати значення `infinite`.
```js
assert($('.back').css('animation-iteration-count') == 'infinite');
```
# --seed--
## --seed-contents--
```html
<style>
.back {
position: fixed;
padding: 0;
margin: 0;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
animation-name: backdiv;
animation-duration: 1s;
}
.heart {
position: absolute;
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: pink;
height: 50px;
width: 50px;
transform: rotate(-45deg);
animation-name: beat;
animation-duration: 1s;
}
.heart:after {
background-color: pink;
content: "";
border-radius: 50%;
position: absolute;
width: 50px;
height: 50px;
top: 0px;
left: 25px;
}
.heart:before {
background-color: pink;
content: "";
border-radius: 50%;
position: absolute;
width: 50px;
height: 50px;
top: -25px;
left: 0px;
}
@keyframes backdiv {
50% {
background: #ffe6f2;
}
}
@keyframes beat {
0% {
transform: scale(1) rotate(-45deg);
}
50% {
transform: scale(0.6) rotate(-45deg);
}
}
</style>
<div class="back"></div>
<div class="heart"></div>
```
# --solutions--
```html
<style>
.back {
position: fixed;
padding: 0;
margin: 0;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
animation-name: backdiv;
animation-duration: 1s;
animation-iteration-count: infinite;
}
.heart {
position: absolute;
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: pink;
height: 50px;
width: 50px;
transform: rotate(-45deg);
animation-name: beat;
animation-duration: 1s;
animation-iteration-count: infinite;
}
.heart:after {
background-color: pink;
content: "";
border-radius: 50%;
position: absolute;
width: 50px;
height: 50px;
top: 0px;
left: 25px;
}
.heart:before {
background-color: pink;
content: "";
border-radius: 50%;
position: absolute;
width: 50px;
height: 50px;
top: -25px;
left: 0px;
}
@keyframes backdiv {
50% {
background: #ffe6f2;
}
}
@keyframes beat {
0% {
transform: scale(1) rotate(-45deg);
}
50% {
transform: scale(0.6) rotate(-45deg);
}
}
</style>
<div class="back"></div>
<div class="heart"></div>
```

View File

@@ -0,0 +1,121 @@
---
id: 587d78a9367417b2b2512aea
title: Зробити рух більш природнім за допомогою кривої Безьє
challengeType: 0
videoUrl: 'https://scrimba.com/c/c7akWUv'
forumTopicId: 301063
dashedName: make-motion-more-natural-using-a-bezier-curve
---
# --description--
Це завдання заохочує елемент для повтору руху кульки, якою жонглюють. Пріоритетні завдання охоплювали кубічні криві Безьє `linear` і `ease-out`, однак жодна із них не зображує точно сам рух жонглювання. Для цього вам потрібно налаштувати криву Безьє.
`animation-timing-function` автоматично з'являється на кожному ключовому кадрі, коли `animation-iteration-count` встановлений до безкінечності. Так як існує правило ключового кадру, встановлене всередині тривалості анімації (на `50%`), це призводить до виникнення двох однакових анімацій руху м'яча вгору і вниз.
Наступна кубічна крива Безьє відтворює рух жонглювання:
```css
cubic-bezier(0.3, 0.4, 0.5, 1.6);
```
Зазначте собі, що значення y2 більше, ніж 1. Хоча кубічна крива Безьє розміщена в точці 1 на 1 в системі координат, і це лише приймає значення х від 0 до 1, значення може бути встановлене у цифрах, які дорівнюють більше 1. Це приведе до того, що рух стрибка, який є ідеальним для відтворення жонглювання м'яча.
# --instructions--
Змініть значення `animation-timing-function` елемента з ідентифікацією `green` до функції `cubic-bezier` зі заченнями х1, y1, x2, y2, які вказані відповідно до 0.311, 0.441, 0.444, 1.649.
# --hints--
Значення властивості `animation-timing-function` для елемента з ідентифікацією `green` повинне бути функцією `cubic-bezier` з вказаними значеннями x1, y1, x2, y2.
```js
assert(
$('#green').css('animation-timing-function') ==
'cubic-bezier(0.311, 0.441, 0.444, 1.649)'
);
```
# --seed--
## --seed-contents--
```html
<style>
.balls {
border-radius: 50%;
position: fixed;
width: 50px;
height: 50px;
top: 60%;
animation-name: jump;
animation-duration: 2s;
animation-iteration-count: infinite;
}
#red {
background: red;
left: 25%;
animation-timing-function: linear;
}
#blue {
background: blue;
left: 50%;
animation-timing-function: ease-out;
}
#green {
background: green;
left: 75%;
animation-timing-function: cubic-bezier(0.69, 0.1, 1, 0.1);
}
@keyframes jump {
50% {
top: 10%;
}
}
</style>
<div class="balls" id="red"></div>
<div class="balls" id="blue"></div>
<div class="balls" id="green"></div>
```
# --solutions--
```html
<style>
.balls {
border-radius: 50%;
position: fixed;
width: 50px;
height: 50px;
top: 60%;
animation-name: jump;
animation-duration: 2s;
animation-iteration-count: infinite;
}
#red {
background: red;
left: 25%;
animation-timing-function: linear;
}
#blue {
background: blue;
left: 50%;
animation-timing-function: ease-out;
}
#green {
background: green;
left: 75%;
animation-timing-function: cubic-bezier(0.311, 0.441, 0.444, 1.649);
}
@keyframes jump {
50% {
top: 10%;
}
}
</style>
<div class="balls" id="red"></div>
<div class="balls" id="blue"></div>
<div class="balls" id="green"></div>
```

View File

@@ -0,0 +1,92 @@
---
id: 58a7a6ebf9a6318348e2d5aa
title: Змінюйте режим заповнення анімації
challengeType: 0
videoUrl: 'https://scrimba.com/c/cVJDmcE'
forumTopicId: 301064
dashedName: modify-fill-mode-of-an-animation
---
# --description--
Усе чудово, але ще не все правильно працює. Зверніть увагу, як анімація починається з початку, коли проходить `500ms`, у результаті чого кнопка повертається до початкового кольору. Потрібно, щоб кнопка підсвічувалася.
Це можливо зробити налаштовуючи властивості `animation-fill-mode` до `forwards`. `animation-fill-mode` визначає стиль, застосований до елемента після завершення анімації. Ви можете налаштувати це так:
```css
animation-fill-mode: forwards;
```
# --instructions--
Налаштуйте властивості `animation-fill-mode` property of `button:hover` to `forwards`, щоб кнопка підсвічувалася, коли користувач наводить на неї.
# --hints--
`button:hover` повинна мати властивість `animation-fill-mode` зі значенням `forwards`.
```js
assert(
code.match(
/button\s*?:\s*?hover\s*?{[\s\S]*animation-fill-mode\s*?:\s*?forwards\s*?;[\s\S]*}/gi
) &&
code.match(
/button\s*?:\s*?hover\s*?{[\s\S]*animation-name\s*?:\s*?background-color\s*?;[\s\S]*}/gi
) &&
code.match(
/button\s*?:\s*?hover\s*?{[\s\S]*animation-duration\s*?:\s*?500ms\s*?;[\s\S]*}/gi
)
);
```
# --seed--
## --seed-contents--
```html
<style>
button {
border-radius: 5px;
color: white;
background-color: #0F5897;
padding: 5px 10px 8px 10px;
}
button:hover {
animation-name: background-color;
animation-duration: 500ms;
/* Only change code below this line */
/* Only change code above this line */
}
@keyframes background-color {
100% {
background-color: #4791d0;
}
}
</style>
<button>Register</button>
```
# --solutions--
```html
<style>
button {
border-radius: 5px;
color: white;
background-color: #0F5897;
padding: 5px 10px 8px 10px;
}
button:hover {
animation-name: background-color;
animation-duration: 500ms;
animation-fill-mode: forwards;
}
@keyframes background-color {
100% {
background-color: #4791d0;
}
}
</style>
<button>Register</button>
```

View File

@@ -0,0 +1,70 @@
---
id: 587d781e367417b2b2512aca
title: Переміщення відносно розміщеного елемента за допомогою зсуву CSS
challengeType: 0
videoUrl: 'https://scrimba.com/c/c9bQEA4'
forumTopicId: 301065
dashedName: move-a-relatively-positioned-element-with-css-offsets
---
# --description--
Зсуви CSS `top` або `bottom` та `left` або `right` повідомляють браузеру, як далеко зсунути елемент відносно того, де б він знаходився у звичайному потоці документа. Ви зсуваєте елемент від вказаної точки, яка відводить елемент від заданої сторони (по суті, у протилежному напрямку). Як ви бачили в останньому завданні, використання зсуву `top` перемістило `h2` вниз. Так само використання зсуву `left` переміщує елемент праворуч.
# --instructions--
Використайте CSS offsets, щоб перемістити `h2` на 15 пікселів праворуч і 10 пікселів вгору.
# --hints--
Ваш код повинен використовувати CSS offset, щоб змістити `h2` на 10 пікселів вгору. Іншими словами, перемістіть його на 10 пікселів від `bottom`, де він зазвичай розташований.
```js
assert($('h2').css('bottom') == '10px');
```
Ваш код повинен використовувати CSS offset, щоб змістити `h2` на 15 пікселів праворуч. Іншими словами, перемістіть його на 15 пікселів від `left`, де він зазвичай розташований.
```js
assert($('h2').css('left') == '15px');
```
# --seed--
## --seed-contents--
```html
<head>
<style>
h2 {
position: relative;
}
</style>
</head>
<body>
<h1>On Being Well-Positioned</h1>
<h2>Move me!</h2>
<p>I still think the h2 is where it normally sits.</p>
</body>
```
# --solutions--
```html
<head>
<style>
h2 {
position: relative;
left: 15px;
bottom: 10px;
}
</style>
</head>
<body>
<h1>On Being Well-Positioned</h1>
<h2>Move me!</h2>
<p>I still think the h2 is where it normally sits.</p>
</body>
```

View File

@@ -0,0 +1,100 @@
---
id: 587d78a3367417b2b2512ace
title: Переміщення елементів вліво та вправо за допомогою властивості float
challengeType: 0
videoUrl: 'https://scrimba.com/c/c2MDqu2'
forumTopicId: 301066
dashedName: push-elements-left-or-right-with-the-float-property
---
# --description--
Наступний інструмент позиціювання не використовує `position`, а встановлює властивість елемента `float`. Вирівнені елементи видаляються зі звичного потоку документа та посуваються або до `left`, або `right` до їхнього початкового елементу. Він зазвичай використовується з властивістю `width`, щоб визначити скільки потрібно місця горизонтально для вирівняних елементів.
# --instructions--
Ця розмітка буде добре працювати разом з макетом елементів, що складається з двох колон `section` і `aside`, що знаходяться поруч один з одним. Надайте `#left` елементу `float` `left` та `#right` елементу `float` `right`.
# --hints--
Елемент з ідентифікатором `left` має мати значення `left` `float`.
```js
assert($('#left').css('float') == 'left');
```
Елемент з ідентифікатором `right` має мати значення `right` `float`.
```js
assert($('#right').css('float') == 'right');
```
# --seed--
## --seed-contents--
```html
<head>
<style>
#left {
width: 50%;
}
#right {
width: 40%;
}
aside, section {
padding: 2px;
background-color: #ccc;
}
</style>
</head>
<body>
<header>
<h1>Welcome!</h1>
</header>
<section id="left">
<h2>Content</h2>
<p>Good stuff</p>
</section>
<aside id="right">
<h2>Sidebar</h2>
<p>Links</p>
</aside>
</body>
```
# --solutions--
```html
<head>
<style>
#left {
float: left;
width: 50%;
}
#right {
float: right;
width: 40%;
}
aside, section {
padding: 2px;
background-color: #ccc;
}
</style>
</head>
<body>
<header>
<h1>Welcome!</h1>
</header>
<section id="left">
<h2>Content</h2>
<p>Good stuff</p>
</section>
<aside id="right">
<h2>Sidebar</h2>
<p>Links</p>
</aside>
</body>
```

View File

@@ -0,0 +1,119 @@
---
id: 587d781c367417b2b2512ac2
title: Встановлення розміру шрифту для для кількох елементів заголовку
challengeType: 0
videoUrl: 'https://scrimba.com/c/cPpQNT3'
forumTopicId: 301067
dashedName: set-the-font-size-for-multiple-heading-elements
---
# --description--
Властивість `font-size` використовується для визначення розміру тексту в заданому елементі. Це правило можна застосовувати для кількох елементів, щоб створити візуальну узгодженість тексту на сторінці. У цьому завданні ви встановите значення для всіх `h1` по `h6` тегів, щоб вирівняти розмір заголовків.
# --instructions-- <p>У тегах <code>style</code>, встановіть <code>font-size</code> у:</p>
<ul>
<li>Тег <code>h1</code> до 68px.</li>
<li>Тег <code>h2</code> до 52px.</li>
<li>Тег <code>h3</code> до 40px.</li>
<li>Тег <code>h4</code> до 32px.</li>
<li>Тег <code>h5</code> до 21px.</li>
<li>Тег <code>h6</code> до 14px.</li>
</ul>
# --hints--
Ваш код має встановити властивість `font-size` для `h1` тегу до 68 пікселів.
```js
const fontSizeOfh1 = new __helpers.CSSHelp(document).getStyle('h1')?.getPropertyValue('font-size');
assert(fontSizeOfh1 === '68px');
```
Ваш код має встановити властивість `font-size` для `h2` тегу до 52 пікселів.
```js
const fontSizeOfh2 = new __helpers.CSSHelp(document).getStyle('h2')?.getPropertyValue('font-size');
assert(fontSizeOfh2 === '52px');
```
Ваш код має встановити властивість `font-size` для `h3` тегу до 40 пікселів.
```js
const fontSizeOfh3 = new __helpers.CSSHelp(document).getStyle('h3')?.getPropertyValue('font-size');
assert(fontSizeOfh3 === '40px');
```
Ваш код має встановити властивість `font-size` для `h4` тегу до 32 пікселів.
```js
const fontSizeOfh4 = new __helpers.CSSHelp(document).getStyle('h4')?.getPropertyValue('font-size');
assert(fontSizeOfh4 === '32px');
```
Ваш код має встановити властивість `font-size` для `h5` тегу до 21 пікселів.
```js
const fontSizeOfh5 = new __helpers.CSSHelp(document).getStyle('h5')?.getPropertyValue('font-size');
assert(fontSizeOfh5 === '21px');
```
Ваш код має встановити властивість `font-size` для `h6` тегу до 14 пікселів.
```js
const fontSizeOfh6 = new __helpers.CSSHelp(document).getStyle('h6')?.getPropertyValue('font-size');
assert(fontSizeOfh6 === '14px');
```
# --seed--
## --seed-contents--
```html
<style>
</style>
<h1>This is h1 text</h1>
<h2>This is h2 text</h2>
<h3>This is h3 text</h3>
<h4>This is h4 text</h4>
<h5>This is h5 text</h5>
<h6>This is h6 text</h6>
```
# --solutions--
```html
<style>
h1 {
font-size: 68px;
}
h2 {
font-size: 52px;
}
h3 {
font-size: 40px;
}
h4 {
font-size: 32px;
}
h5 {
font-size: 21px;
}
h6 {
font-size: 14px;
}
</style>
<h1>This is h1 text</h1>
<h2>This is h2 text</h2>
<h3>This is h3 text</h3>
<h4>This is h4 text</h4>
<h5>This is h5 text</h5>
<h6>This is h6 text</h6>
```

View File

@@ -0,0 +1,52 @@
---
id: 587d781c367417b2b2512ac4
title: Встановлення розміру шрифту тексту абзацу
challengeType: 0
videoUrl: 'https://scrimba.com/c/cVJ36Cr'
forumTopicId: 301068
dashedName: set-the-font-size-of-paragraph-text
---
# --description--
Властивість `font-size` у CSS не обмежується лише заголовками, вона може застосовуватись до будь-якого елементу, що містить текст.
# --instructions--
Абзац стане більш видимий, якщо змінити значення властивості `font-size` до 16px.
# --hints--
Ваш тег `p` повинен мати розмір шрифту 16 pixels `font-size`.
```js
assert($('p').css('font-size') == '16px');
```
# --seed--
## --seed-contents--
```html
<style>
p {
font-size: 10px;
}
</style>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</p>
```
# --solutions--
```html
<style>
p {
font-size: 16px;
}
</style>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</p>
```

View File

@@ -0,0 +1,132 @@
---
id: 587d781c367417b2b2512ac3
title: Встановлення насиченості для кількох елементів заголовку
challengeType: 0
videoUrl: 'https://scrimba.com/c/crVWRHq'
forumTopicId: 301069
dashedName: set-the-font-weight-for-multiple-heading-elements
---
# --description--
В останньому завданні ви встановлювали `font-size` кожного тегу, тут ви зміните `font-weight`.
Властивість `font-weight` визначає наскільки символи в тексті будуть товстими або тонкими.
# --instructions--
<ul><li>Встановіть <code>font-weight</code> <code>h1</code> тегу до 800.</li><li>Встановіть <code>font-weight</code> <code>h2</code> тегу до 600.</li><li>Встановіть <code>font-weight</code> <code>h3</code> тегу до 500.</li><li>Встановіть <code>font-weight</code> <code>h4</code> тегу до 400.</li><li>Встановіть <code>font-weight</code> <code>h5</code> тегу до 300.</li><li>Встановіть <code>font-weight</code> <code>h6</code> тегу до 200.</li></ul>
# --hints--
Ваш код має встановити властивість `font-weight` для `h1` тегу до 800.
```js
assert($('h1').css('font-weight') == '800');
```
Ваш код має встановити властивість `font-weight` для `h2` тегу до 600.
```js
assert($('h2').css('font-weight') == '600');
```
Ваш код має встановити властивість `font-weight` для `h3` тегу до 500.
```js
assert($('h3').css('font-weight') == '500');
```
Ваш код має встановити властивість `font-weight` для `h4` тегу до 400.
```js
assert($('h4').css('font-weight') == '400');
```
Ваш код має встановити властивість `font-weight` для `h5` тегу до 300.
```js
assert($('h5').css('font-weight') == '300');
```
Ваш код має встановити властивість `font-weight` для `h6` тегу до 200.
```js
assert($('h6').css('font-weight') == '200');
```
# --seed--
## --seed-contents--
```html
<style>
h1 {
font-size: 68px;
}
h2 {
font-size: 52px;
}
h3 {
font-size: 40px;
}
h4 {
font-size: 32px;
}
h5 {
font-size: 21px;
}
h6 {
font-size: 14px;
}
</style>
<h1>This is h1 text</h1>
<h2>This is h2 text</h2>
<h3>This is h3 text</h3>
<h4>This is h4 text</h4>
<h5>This is h5 text</h5>
<h6>This is h6 text</h6>
```
# --solutions--
```html
<style>
h1 {
font-size: 68px;
font-weight: 800;
}
h2 {
font-size: 52px;
font-weight: 600;
}
h3 {
font-size: 40px;
font-weight: 500;
}
h4 {
font-size: 32px;
font-weight: 400;
}
h5 {
font-size: 21px;
font-weight: 300;
}
h6 {
font-size: 14px;
font-weight: 200;
}
</style>
<h1>This is h1 text</h1>
<h2>This is h2 text</h2>
<h3>This is h3 text</h3>
<h4>This is h4 text</h4>
<h5>This is h5 text</h5>
<h6>This is h6 text</h6>
```

View File

@@ -0,0 +1,54 @@
---
id: 587d781d367417b2b2512ac5
title: Установка висоти рядків абзаців
challengeType: 0
videoUrl: 'https://scrimba.com/c/crVWdcv'
forumTopicId: 301070
dashedName: set-the-line-height-of-paragraphs
---
# --description--
CSS пропонує характеристику `line-height`, щоб змінити висоту кожного рядка у блоці тексту. Як пропонує назва, це змінює кількість вертикального простору, який отримує кожен рядок тексту.
# --instructions--
Додайте властивість `line-height` до тегу `p` і встановіть до 25px.
# --hints--
Ваш код повинен встановити `line-height` тегу `p` до 25 пікселів.
```js
assert($('p').css('line-height') == '25px');
```
# --seed--
## --seed-contents--
```html
<style>
p {
font-size: 16px;
}
</style>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</p>
```
# --solutions--
```html
<style>
p {
font-size: 16px;
line-height: 25px;
}
</style>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</p>
```

View File

@@ -0,0 +1,128 @@
---
id: 587d78a9367417b2b2512ae9
title: Використання кривої Безьє для переміщення графіка
challengeType: 0
videoUrl: 'https://scrimba.com/c/c6bnRCK'
forumTopicId: 301071
dashedName: use-a-bezier-curve-to-move-a-graphic
---
# --description--
У попередньому завданні йшлося про ключове слово `ease-out`, яке описує зміну анімації, що спочатку пришвидшується, а тоді уповільнюється в кінці анімації. Праворуч показано різницю між ключовим словом `ease-out` (для синього елемента) і ключовим словом `linear` (для червоного елемента). Подібну послідовність анімації до ключового слова `ease-out` можна створити за допомогою користувацької функції кубічної кривої Безьє.
Загалом зміна точок прив'язки `p1` та `p2` керує створенням різних кривих Безьє, що контролює розвиток анімації в часі. Ось приклад кривої Безьє, створеної за допомогою значень для імітації стилю зсунення зі зникненням (ease-out):
```css
animation-timing-function: cubic-bezier(0, 0, 0.58, 1);
```
Пам'ятайте, що всі функції `cubic-bezier` починаються з `p0` на точці (0, 0) та закінчуються `p3` на точці (1, 1). У цьому прикладі крива рухається швидше по осі Y (починається з 0, тоді рухається до `p1`, y має значення 0, тоді рухається до `p2`, y має значення 1), ніж по осі X (0 на початку, тоді 0 для `p1`, до 0.58 для `p2`). У результаті зміна анімованих елементів відбувається швидше ніж час анімації для даного сегменту. Під кінець кривої зв'язок між зміною значень x та у змінюється на протилежне: значення у переходить від 1 до 1 (без змін), а значення x зміщуються з 0.58 до 1, завдяки чому зміна анімації відбувається повільніше у порівнянні з тривалістю анімації.
# --instructions--
Щоб побачити результат цієї кривої Безьє в дії, змініть `animation-timing-function` елемента з ідентифікацією `red` на функцію `cubic-bezier` зі значеннями х1, y1, x2, y2, які вказані відповідно до 0, 0, 0.58, 1. Завдяки цьому обидва елементи будуть однаково просуватися по анімації.
# --hints--
Значення властивості `animation-timing-function` для елемента з ідентифікацією `red` повинно бути функцією `cubic-bezier` зі значеннями x1, y1, x2, y2, які вказані відповідно до 0, 0, 0.58, 1 .
```js
assert(
$('#red').css('animation-timing-function') == 'cubic-bezier(0, 0, 0.58, 1)'
);
```
Елемент з ідентифікацією `red` більше не повинен мати властивість `animation-timing-function` коду `linear`.
```js
assert($('#red').css('animation-timing-function') !== 'linear');
```
Значення властивості `animation-timing-function` для елемента з ідентифікацією `blue` не повинно змінюватися.
```js
const blueBallAnimation = __helpers.removeWhiteSpace(
$('#blue').css('animation-timing-function')
);
assert(
blueBallAnimation == 'ease-out' ||
blueBallAnimation == 'cubic-bezier(0,0,0.58,1)'
);
```
# --seed--
## --seed-contents--
```html
<style>
.balls{
border-radius: 50%;
position: fixed;
width: 50px;
height: 50px;
margin-top: 50px;
animation-name: bounce;
animation-duration: 2s;
animation-iteration-count: infinite;
}
#red {
background: red;
left: 27%;
animation-timing-function: linear;
}
#blue {
background: blue;
left: 56%;
animation-timing-function: ease-out;
}
@keyframes bounce {
0% {
top: 0px;
}
100% {
top: 249px;
}
}
</style>
<div class="balls" id= "red"></div>
<div class="balls" id= "blue"></div>
```
# --solutions--
```html
<style>
.balls{
border-radius: 50%;
position: fixed;
width: 50px;
height: 50px;
margin-top: 50px;
animation-name: bounce;
animation-duration: 2s;
animation-iteration-count: infinite;
}
#red {
background: red;
left: 27%;
animation-timing-function: cubic-bezier(0, 0, 0.58, 1);
}
#blue {
background: blue;
left: 56%;
animation-timing-function: ease-out;
}
@keyframes bounce {
0% {
top: 0px;
}
100% {
top: 249px;
}
}
</style>
<div class="balls" id= "red"></div>
<div class="balls" id= "blue"></div>
```

View File

@@ -0,0 +1,113 @@
---
id: 587d78a5367417b2b2512ad7
title: Використання лінійного градієнта CSS для створення смугастого елемента
challengeType: 0
videoUrl: 'https://scrimba.com/c/c6bmQh2'
forumTopicId: 301072
dashedName: use-a-css-linear-gradient-to-create-a-striped-element
---
# --description--
Функція `repeating-linear-gradient()` дуже схожа на `linear-gradient()`. Головна різниця полягає в тому, що ця функція повторює вказаний градієнт шаблону. `repeating-linear-gradient()` набуває безлічі значень, але, щоб полегшити завдання, ви будете працювати зі значенням кута і значеннями стоп-кольору.
Значення кута - це напрямок градієнта. Стоп-кольори або кольорові обмежувачі - схожі значення ширини, що позначають місце, де відбувається перехід, і вони подаються у відсотках або у кількості пікселів.
У прикладі, який подано в редакторі коду, градієнт починається з кольору `yellow` (жовтий) на рівні 0 пікселів, який зливається з другим кольором `blue` (синій) на рівні 40 пікселів від початку. Оскільки наступний стоп-колір також знаходиться на рівні 40 пікселів, градієнт негайно змінюється на третій колір `green` (зелений), який сам по собі зливається з четвертим значенням кольору `red` (червоний), оскільки він розташований на рівні 80 пікселів від початку градієнта.
Для цього прикладу слід уявляти собі стоп-кольори як пари, де кожні два кольори зливаються.
```css
0px [yellow -- blend -- blue] 40px [green -- blend -- red] 80px
```
Якщо обидва значення стоп-кольорів однакові, злиття непомітне, оскільки воно відбувається між тим самим кольором, після чого здійснюється різкий перехід до наступного кольору, тому в результаті виходять смуги.
# --instructions--
Смуги можна зробити змінивши `repeating-linear-gradient()` таким чином, щоб використати градієнтний кут `45deg`, потім налаштувати перші два стоп-кольори на `yellow` (жовтий), а вкінці два інші стоп-кольори - на `black` (чорний).
# --hints--
Кут `repeating-linear-gradient()` повинен складати 45 градусів.
```js
assert(code.match(/background:\s*?repeating-linear-gradient\(\s*?45deg/gi));
```
Кут `repeating-linear-gradient()` повинен складати не більше 90 градусів
```js
assert(!code.match(/90deg/gi));
```
Стоп-колір на рівні 0 пікселів повинен бути `yellow` (жовтий).
```js
assert(code.match(/yellow\s+?0(px)?/gi));
```
Один стоп-колір на рівні 40 пікселів повинен бути `yellow` (жовтий).
```js
assert(code.match(/yellow\s+?40px/gi));
```
Другий стоп-колір на рівні 40 пікселів повинен бути `black` (чорний).
```js
assert(code.match(/yellow\s+?40px,\s*?black\s+?40px/gi));
```
Останній стоп-колір на рівні 80 пікселів повинен бути `black` (чорний).
```js
assert(code.match(/black\s+?80px/gi));
```
# --seed--
## --seed-contents--
```html
<style>
div{
border-radius: 20px;
width: 70%;
height: 400px;
margin: 50 auto;
background: repeating-linear-gradient(
90deg,
yellow 0px,
blue 40px,
green 40px,
red 80px
);
}
</style>
<div></div>
```
# --solutions--
```html
<style>
div{
border-radius: 20px;
width: 70%;
height: 400px;
margin: 50 auto;
background: repeating-linear-gradient(
45deg,
yellow 0px,
yellow 40px,
black 40px,
black 80px
);
}
</style>
<div></div>
```

View File

@@ -0,0 +1,103 @@
---
id: 587d78a7367417b2b2512ae0
title: Використовуйте анімацію CSS, щоб змінити положення клавіші при наведенні
challengeType: 0
videoUrl: 'https://scrimba.com/c/cg4vZAa'
forumTopicId: 301073
dashedName: use-css-animation-to-change-the-hover-state-of-a-button
---
# --description--
Ви можете використати CSS `@keyframes`, щоб змінити колір клавіші при наведенні.
Ось приклад зміни ширини зображення на курсорі:
```html
<style>
img {
width: 30px;
}
img:hover {
animation-name: width;
animation-duration: 500ms;
}
@keyframes width {
100% {
width: 40px;
}
}
</style>
<img src="https://cdn.freecodecamp.org/curriculum/applied-visual-design/google-logo.png" alt="Google's Logo" />
```
# --instructions--
Зверніть увагу, що `ms` означає мілісекунди, де 1000 мілісекунд дорівнює одній секунді.
Використовуйте CSS `@keyframes`, щоб змінити `background-color` елемента `button`, так щоб він став `#4791d0`, коли користувач наводить на нього курсор. Правило `@keyframes` повинне мати лише запис на `100%`.
# --hints--
Правило @keyframes повинне використовувати колір фону `animation-name`.
```js
assert(code.match(/@keyframes\s+?background-color\s*?{/g));
```
Повинна бути лише одна умова під `@keyframes`, яка змінює `background-color` до `#4791d0` на 100%.
```js
assert(code.match(/100%\s*?{\s*?background-color:\s*?#4791d0;\s*?}/gi));
```
# --seed--
## --seed-contents--
```html
<style>
button {
border-radius: 5px;
color: white;
background-color: #0F5897;
padding: 5px 10px 8px 10px;
}
button:hover {
animation-name: background-color;
animation-duration: 500ms;
}
</style>
<button>Register</button>
```
# --solutions--
```html
<style>
button {
border-radius: 5px;
color: white;
background-color: #0F5897;
padding: 5px 10px 8px 10px;
}
button:hover {
animation-name: background-color;
animation-duration: 500ms;
}
@keyframes background-color {
100% {
background-color: #4791d0;
}
}
</style>
<button>Register</button>
```

View File

@@ -0,0 +1,77 @@
---
id: 587d78a6367417b2b2512adb
title: Використання властивості CSS transform skewX для оновлення елементу разом з віссю X
challengeType: 0
videoUrl: 'https://scrimba.com/c/cyLP8Sr'
forumTopicId: 301074
dashedName: use-the-css-transform-property-skewx-to-skew-an-element-along-the-x-axis
---
# --description--
`skewX()` — ще одна функція властивості `transform`, яка переносить обраний елемент по власній вісі Х (горизонтальній) на задану кількість градусів.
Даний код пересуває абзац на -32 градуси по вісі Х.
```css
p {
transform: skewX(-32deg);
}
```
# --instructions--
Перемістіть елемент з ідентифікатором `bottom` на 24 градуси по вісі Х, використовуючи властивість `transform`.
# --hints--
Елемент з ідентифікатором `bottom` повинен переміститись на 24 градуси по вісі Х.
```js
assert(code.match(/#bottom\s*?{\s*?.*?\s*?transform:\s*?skewX\(24deg\);/g));
```
# --seed--
## --seed-contents--
```html
<style>
div {
width: 70%;
height: 100px;
margin: 50px auto;
}
#top {
background-color: red;
}
#bottom {
background-color: blue;
}
</style>
<div id="top"></div>
<div id="bottom"></div>
```
# --solutions--
```html
<style>
div {
width: 70%;
height: 100px;
margin: 50px auto;
}
#top {
background-color: red;
}
#bottom {
background-color: blue;
transform: skewX(24deg);
}
</style>
<div id="top"></div>
<div id="bottom"></div>
```

View File

@@ -0,0 +1,71 @@
---
id: 587d78a6367417b2b2512adc
title: Використання властивості CSS transform skewY для оновлення елементу разом з віссю Y
challengeType: 0
videoUrl: 'https://scrimba.com/c/c2MZ2uB'
forumTopicId: 301075
dashedName: use-the-css-transform-property-skewy-to-skew-an-element-along-the-y-axis
---
# --description--
Зважаючи на те, що функція `skewX()` переносить вибраний елемент вздовж вісі Х на заданий градус, не дивно, що властивість `skewY()` переносить елемент вздовж вісі Y (по вертикалі).
# --instructions--
Перемістіть елемент з ідентифікатором `top` на -10 градуси по вісі Y, використовуючи властивість `transform`.
# --hints--
Елемент з ідентифікатором `top` повинен переміститись на -10 градуси по вісі Y.
```js
assert(code.match(/#top\s*?{\s*?.*?\s*?transform:\s*?skewY\(-10deg\);/g));
```
# --seed--
## --seed-contents--
```html
<style>
div {
width: 70%;
height: 100px;
margin: 50px auto;
}
#top {
background-color: red;
}
#bottom {
background-color: blue;
transform: skewX(24deg);
}
</style>
<div id="top"></div>
<div id="bottom"></div>
```
# --solutions--
```html
<style>
div {
width: 70%;
height: 100px;
margin: 50px auto;
}
#top {
background-color: red;
transform: skewY(-10deg);
}
#bottom {
background-color: blue;
transform: skewX(24deg);
}
</style>
<div id="top"></div>
<div id="bottom"></div>
```

View File

@@ -0,0 +1,95 @@
---
id: 587d78a5367417b2b2512ad9
title: Використання властивості трансформування CSS scale для зміни розміру елемента
challengeType: 0
videoUrl: 'https://scrimba.com/c/c2MZVSg'
forumTopicId: 301076
dashedName: use-the-css-transform-scale-property-to-change-the-size-of-an-element
---
# --description--
Щоб змінити масштаб елемента, CSS має властивість `transform` разом з функцією `scale()`. Приклад наступного коду подвоює розмір всіх елементів абзацу на сторінці:
```css
p {
transform: scale(2);
}
```
# --instructions--
Збільште розмір елемента з ідентифікатором `ball2` в 1,5 рази від його початкового розміру.
# --hints--
Властивість `transform` для `#ball2` має бути збільшено в 1.5 рази від початкового розміру.
```js
assert(
code.match(
/#ball2\s*?{\s*?left:\s*?65%;\s*?transform:\s*?scale\(1\.5\);\s*?}|#ball2\s*?{\s*?transform:\s*?scale\(1\.5\);\s*?left:\s*?65%;\s*?}/gi
)
);
```
# --seed--
## --seed-contents--
```html
<style>
.ball {
width: 40px;
height: 40px;
margin: 50 auto;
position: fixed;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
border-radius: 50%;
}
#ball1 {
left: 20%;
}
#ball2 {
left: 65%;
}
</style>
<div class="ball" id= "ball1"></div>
<div class="ball" id= "ball2"></div>
```
# --solutions--
```html
<style>
.ball {
width: 40px;
height: 40px;
margin: 50 auto;
position: fixed;
background: linear-gradient(
35deg,
#ccffff,
#ffcccc
);
border-radius: 50%;
}
#ball1 {
left: 20%;
}
#ball2 {
left: 65%;
transform: scale(1.5);
}
</style>
<div class="ball" id= "ball1"></div>
<div class="ball" id= "ball2"></div>
```

View File

@@ -0,0 +1,79 @@
---
id: 587d78a5367417b2b2512ada
title: Використання властивості трансформування CSS scale для розміщення елементу в Hover
challengeType: 0
videoUrl: 'https://scrimba.com/c/cyLPJuM'
forumTopicId: 301077
dashedName: use-the-css-transform-scale-property-to-scale-an-element-on-hover
---
# --description--
Властивість `transform` має різні функції, що дозволяють масштабувати, рухати, обертати, нахиляти, і т. д., ваші елементи. При використанні з псевдокласами, такими як `:hover`, який визначає певний стан елемента, властивість `transform` може легко додати інтерактивність до ваших елементів.
Ось приклад масштабування елементів абзацу до 2,1 разів від початкового розміру, коли користувач наводить на нього:
```css
p:hover {
transform: scale(2.1);
}
```
**Примітка:** Застосовуючи transform на `div` елемент, він також вплине на будь-які дочірні елементи, що містяться у div.
# --instructions--
Додайте правило CSS до `hover` стану `div` та використайте властивість `transform` щоб масштабувати елемент `div` до 1,1 рази від початкового розміру, коли користувач наводить на нього.
# --hints--
Розмір елемента `div` має масштабуватись в 1,1 рази, коли користувач наводить на нього.
```js
assert(code.match(/div:hover\s*?{\s*?transform:\s*?scale\(1\.1\);/gi));
```
# --seed--
## --seed-contents--
```html
<style>
div {
width: 70%;
height: 100px;
margin: 50px auto;
background: linear-gradient(
53deg,
#ccfffc,
#ffcccf
);
}
</style>
<div></div>
```
# --solutions--
```html
<style>
div {
width: 70%;
height: 100px;
margin: 50px auto;
background: linear-gradient(
53deg,
#ccfffc,
#ffcccf
);
}
div:hover {
transform: scale(1.1);
}
</style>
<div></div>
```

View File

@@ -0,0 +1,118 @@
---
id: 587d781a367417b2b2512ab9
title: Використання тегу em для виділення тексту курсивом
challengeType: 0
videoUrl: 'https://scrimba.com/c/cVJRBtp'
forumTopicId: 301078
dashedName: use-the-em-tag-to-italicize-text
---
# --description--
Щоб акцентувати текст, ви можете використати тег `em`. Текст відобразиться курсивом, оскільки браузер застосовує код CSS `font-style: italic;` до елемента.
# --instructions--
Розмістіть тег `em` навколо вмісту абзацу щоб акцентувати його.
# --hints--
Ваш код має додати тег `em` у текст розмітки.
```js
assert($('em').length == 1);
```
Тег `em` має охопити вміст `p` тегу, а не сам `p` тег.
```js
assert($('p').children().length == 1 && $('em').children().length == 2);
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,135 @@
---
id: 587d781b367417b2b2512aba
title: Використання тегу s щоб закреслити текст
challengeType: 0
videoUrl: ''
forumTopicId: 301079
dashedName: use-the-s-tag-to-strikethrough-text
---
# --description--
Для закреслення тексту, що відображається як горизонтальна лінія, яка проходить крізь символи, ви можете використати тег `s`. Таким чином можна показати, що частина тексту більше недійсна. З тегом `s` браузер застосовує `text-decoration: line-through;` CSS код до елемента.
# --instructions--
Розмістіть тег `s` навколо `Google` всередині тегу `h4`, а потім додайте до нього слово `Alphabet`, яке не повинне бути закресленим.
# --hints--
Ваш код має додати тег `s` у текст розмітки.
```js
assert($('s').length == 1);
```
Тег `s` повинен бути розміщеним навколо тексту `Google` в тезі `h4`. Він не повинен містити слово `Alphabet`.
```js
assert(
$('h4 > s')
.text()
.match(/Google/gi) &&
!$('h4 > s')
.text()
.match(/Alphabet/gi)
);
```
Ви повинні додати слово `Alphabet` в тег `h4` без викреслення.
```js
assert(
$('h4')
.html()
.match(/Alphabet/gi)
);
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4><s>Google</s> Alphabet</h4>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,128 @@
---
id: 587d781a367417b2b2512ab7
title: Використання тегу strong для виділення тексту жирним шрифтом
challengeType: 0
videoUrl: 'https://scrimba.com/c/ceJNBSb'
forumTopicId: 301080
dashedName: use-the-strong-tag-to-make-text-bold
---
# --description--
Щоб виділити текст жирним шрифтом, ви можете використати тег `strong`. Він часто використовується для того, щоб привернути увагу до тексту та вказати на його важливість. За допомогою тегу `strong` браузер застосовує `font-weight: bold;` CSS код до елементу.
# --instructions--
Розмістіть тег `strong` навколо тексту `Stanford University` всередині тегу `p` (без крапки).
# --hints--
Ваш код має додати тег `strong` у текст розмітки.
```js
assert($('strong').length == 1);
```
Тег `source` повинен знаходитися в середині тегу `p`.
```js
assert($('p').children('strong').length == 1);
```
Тег `strong` повинен бути розміщеним навколо слів `Stanford University`.
```js
assert(
$('strong')
.text()
.match(/^Stanford University\.?$/gi)
);
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were Ph.D. students at <strong>Stanford University</strong>.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,138 @@
---
id: 587d781c367417b2b2512ac0
title: Використання властивості text-transform, щоб перевести текст у верхній регістр
challengeType: 0
videoUrl: 'https://scrimba.com/c/cvVZQSP'
forumTopicId: 301081
dashedName: use-the-text-transform-property-to-make-text-uppercase
---
# --description--
Властивість CSS `text-transform` використовується для того щоб змінити вигляду тексту. Це зручний спосіб переконатися, що текст на веб-сторнці виникає послідовно та не змушує змінювати зміст тексту самих елементів HTML.
Наступна таблиця показує, як різні значення `text-transform` змінюють приклад тексту "Зміни мене".
<table class='table table-striped'><thead><tr><th>Значення</th><th>Результат</th></tr></thead><tbody><tr><td><code>lowercase</code></td><td>"зміни мене"</td></tr><tr><td><code>uppercase</code></td><td>"ЗМІНИ МЕНЕ"</td></tr><tr><td><code>capitalize</code></td><td>"Зміни мене"</td></tr><tr><td><code>initial</code></td><td>Використовувати значення за замовчуванням</td></tr><tr><td><code>inherit</code></td><td>Використовуйте значення <code>text-transform</code> з батьківського елемента</td></tr><tr><td><code>none</code></td><td><strong>За замовчуванням:</strong> Використовуйте вихідний текст</td></tr></tbody></table>
# --instructions--
Змініть текст тегу `h4` в верхній регістр за допомогою властивості `text-transform`.
# --hints--
Властивість тексту `h4` повинна мати значення `uppercase`.
```js
assert($('h4').css('text-transform') === 'uppercase');
```
Оригінальний текст h4 не можна змінювати.
```js
assert($('h4').text() !== $('h4').text().toUpperCase());
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
background-color: rgba(45, 45, 45, 0.1);
padding: 10px;
font-size: 27px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
opacity: 0.7;
}
#thumbnail {
box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard" id="thumbnail">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
background-color: rgba(45, 45, 45, 0.1);
padding: 10px;
font-size: 27px;
text-transform: uppercase;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
opacity: 0.7;
}
#thumbnail {
box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard" id="thumbnail">
<div class="cardContent">
<div class="cardText">
<h4>Alphabet</h4>
<hr>
<p><em>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</em></p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```

View File

@@ -0,0 +1,120 @@
---
id: 587d781a367417b2b2512ab8
title: Використання тегу u для підкреслення тексту
challengeType: 0
videoUrl: 'https://scrimba.com/c/cN6aQCL'
forumTopicId: 301082
dashedName: use-the-u-tag-to-underline-text
---
# --description--
Щоб підкреслити текст, ви можете скористатися тегом `u`. Це часто використовується, щоб виділити важливу частину тексту або те, що необхідно запам'ятати. З тегом `u` браузер використовує до елементу CSS властивість `text-decoration: underline;`.
# --instructions--
Тег `u` має містити лише текст `Ph.D. students`.
**Примітка:**Намагайтеся уникнути використання тегу `u` для тексту, схожого на посилання. Якірні теги також мають формат підкреслення за замовчуванням.
# --hints--
Ваш код має додати тег `u` у текст розмітки.
```js
assert($('u').length === 1);
```
Тег `u` має містити лише текст `Ph.D. students`.
```js
assert($('u').text() === 'Ph.D. students');
```
# --seed--
## --seed-contents--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were Ph.D. students at <strong>Stanford University</strong>.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```
# --solutions--
```html
<style>
h4 {
text-align: center;
height: 25px;
}
p {
text-align: justify;
}
.links {
text-align: left;
color: black;
}
.fullCard {
width: 245px;
border: 1px solid #ccc;
border-radius: 5px;
margin: 10px 5px;
padding: 4px;
}
.cardContent {
padding: 10px;
}
.cardText {
margin-bottom: 30px;
}
</style>
<div class="fullCard">
<div class="cardContent">
<div class="cardText">
<h4>Google</h4>
<p>Google was founded by Larry Page and Sergey Brin while they were <u>Ph.D. students</u> at <strong>Stanford University</strong>.</p>
</div>
<div class="cardLinks">
<a href="https://en.wikipedia.org/wiki/Larry_Page" target="_blank" class="links">Larry Page</a><br><br>
<a href="https://en.wikipedia.org/wiki/Sergey_Brin" target="_blank" class="links">Sergey Brin</a>
</div>
</div>
</div>
```