2018-09-30 23:01:58 +01:00
---
id: 5a9d7295424fe3d0e10cad14
2019-06-09 04:09:00 +02:00
title: Inherit CSS Variables
2018-09-30 23:01:58 +01:00
challengeType: 0
videoUrl: 'https://scrimba.com/c/cyLZZhZ'
2019-08-05 09:17:33 -07:00
forumTopicId: 301088
2018-09-30 23:01:58 +01:00
---
## Description
< section id = 'description' >
2019-06-09 04:09:00 +02:00
When you create a variable, it is available for you to use inside the selector in which you create it. It also is available in any of that selector's descendants. This happens because CSS variables are inherited, just like ordinary properties.
To make use of inheritance, CSS variables are often defined in the < dfn > :root< / dfn > element.
< code > :root< / code > is a < dfn > pseudo-class< / dfn > selector that matches the root element of the document, usually the < code > html< / code > element. By creating your variables in < code > :root< / code > , they will be available globally and can be accessed from any other selector in the style sheet.
2018-09-30 23:01:58 +01:00
< / section >
## Instructions
< section id = 'instructions' >
2019-06-09 04:09:00 +02:00
Define a variable named < code > --penguin-belly< / code > in the < code > :root< / code > selector and give it the value of < code > pink< / code > . You can then see that the variable is inherited and that all the child elements which use it get pink backgrounds.
2018-09-30 23:01:58 +01:00
< / section >
## Tests
< section id = 'tests' >
```yml
2018-10-04 14:37:37 +01:00
tests:
2019-11-20 06:45:19 -08:00
- text: The < code > --penguin-belly</ code > variable should be declared in the < code > :root</ code > and assigned the value < code > pink</ code > .
2019-07-24 02:50:51 -07:00
testString: assert(code.match(/:root\s*?{[\s\S]*--penguin-belly\s*?:\s*?pink\s*?;[\s\S]*}/gi));
2018-09-30 23:01:58 +01:00
```
< / section >
## Challenge Seed
< section id = 'challengeSeed' >
< div id = 'html-seed' >
```html
< style >
:root {
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
/* add code below */
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
/* add code above */
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
body {
background: var(--penguin-belly, #c6faf1 );
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.penguin {
--penguin-skin: gray;
--penguin-beak: orange;
position: relative;
margin: auto;
display: block;
margin-top: 5%;
width: 300px;
height: 300px;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.right-cheek {
top: 15%;
left: 35%;
background: var(--penguin-belly, white);
width: 60%;
height: 70%;
border-radius: 70% 70% 60% 60%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.left-cheek {
top: 15%;
left: 5%;
background: var(--penguin-belly, white);
width: 60%;
height: 70%;
border-radius: 70% 70% 60% 60%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.belly {
top: 60%;
left: 2.5%;
background: var(--penguin-belly, white);
width: 95%;
height: 100%;
border-radius: 120% 120% 100% 100%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.penguin-top {
top: 10%;
left: 25%;
background: var(--penguin-skin, gray);
width: 50%;
height: 45%;
border-radius: 70% 70% 60% 60%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.penguin-bottom {
top: 40%;
left: 23.5%;
background: var(--penguin-skin, gray);
width: 53%;
height: 45%;
border-radius: 70% 70% 100% 100%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.right-hand {
top: 0%;
left: -5%;
background: var(--penguin-skin, gray);
width: 30%;
height: 60%;
border-radius: 30% 30% 120% 30%;
transform: rotate(45deg);
z-index: -1;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.left-hand {
top: 0%;
left: 75%;
background: var(--penguin-skin, gray);
width: 30%;
height: 60%;
border-radius: 30% 30% 30% 120%;
transform: rotate(-45deg);
z-index: -1;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.right-feet {
top: 85%;
left: 60%;
background: var(--penguin-beak, orange);
width: 15%;
height: 30%;
border-radius: 50% 50% 50% 50%;
transform: rotate(-80deg);
z-index: -2222;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.left-feet {
top: 85%;
left: 25%;
background: var(--penguin-beak, orange);
width: 15%;
height: 30%;
border-radius: 50% 50% 50% 50%;
transform: rotate(80deg);
z-index: -2222;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.right-eye {
top: 45%;
left: 60%;
background: black;
width: 15%;
height: 17%;
border-radius: 50%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.left-eye {
top: 45%;
left: 25%;
background: black;
width: 15%;
height: 17%;
border-radius: 50%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.sparkle {
top: 25%;
left: 15%;
background: white;
width: 35%;
height: 35%;
border-radius: 50%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.blush-right {
top: 65%;
left: 15%;
background: pink;
width: 15%;
height: 10%;
border-radius: 50%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.blush-left {
top: 65%;
left: 70%;
background: pink;
width: 15%;
height: 10%;
border-radius: 50%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.beak-top {
top: 60%;
left: 40%;
background: var(--penguin-beak, orange);
width: 20%;
height: 10%;
border-radius: 50%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.beak-bottom {
top: 65%;
left: 42%;
background: var(--penguin-beak, orange);
width: 16%;
height: 10%;
border-radius: 50%;
}
2018-10-08 01:01:53 +01:00
2018-09-30 23:01:58 +01:00
.penguin * {
position: absolute;
}
< / style >
< div class = "penguin" >
< div class = "penguin-bottom" >
< div class = "right-hand" > < / div >
< div class = "left-hand" > < / div >
< div class = "right-feet" > < / div >
< div class = "left-feet" > < / div >
< / div >
< div class = "penguin-top" >
< div class = "right-cheek" > < / div >
< div class = "left-cheek" > < / div >
< div class = "belly" > < / div >
< div class = "right-eye" >
< div class = "sparkle" > < / div >
< / div >
< div class = "left-eye" >
< div class = "sparkle" > < / div >
< / div >
< div class = "blush-right" > < / div >
< div class = "blush-left" > < / div >
< div class = "beak-top" > < / div >
< div class = "beak-bottom" > < / div >
< / div >
< / div >
```
< / div >
< / section >
## Solution
< section id = 'solution' >
```js
var code = ":root {--penguin-belly: pink;}"
```
< / section >