diff --git a/challenges/01-responsive-web-design/applied-visual-design.json b/challenges/01-responsive-web-design/applied-visual-design.json
index cc35c86d2..cc106dce1 100644
--- a/challenges/01-responsive-web-design/applied-visual-design.json
+++ b/challenges/01-responsive-web-design/applied-visual-design.json
@@ -2622,27 +2622,27 @@
"id": "587d78a6367417b2b2512ade",
"title": "Create a More Complex Shape Using CSS and HTML",
"description": [
- "One of the most popular shapes in the world is the heart shape, and this challenge creates it with raw CSS. But first, you need to understand the :before
and :after
selectors. These selectors are used to add something before or after a selected element. In the following example, a :before
selector is used to add a rectangle to an element with the class heart
:",
- "
.heart:before {", - "For the
content: \"\";
background-color: yellow;
border-radius: 25%;
position: absolute;
height: 50px;
width: 70px;
top: -50px;
left: 5px;
}
:before
and :after
selectors to function properly, they must have a defined content
property. It usually has content such as a photo or text. When the :before
and :after
selectors add shapes, the content
property is still required, but it's set to an empty string.",
- "In the above example, the element with the class of heart
has a :before
selector that produces a yellow rectangle with height
and width
of 50px and 70px, respectively. This rectangle has round corners due to its 25% border radius and is positioned absolutely at 5px from the left
and 50px above the top
of the element.",
+ "One of the most popular shapes in the world is the heart shape, and in this challenge you'll create one using pure CSS. But first, you need to understand the ::before
and ::after
pseudo-elements. These pseudo-elements are used to add something before or after a selected element. In the following example, a ::before
pseudo-element is used to add a rectangle to an element with the class heart
:",
+ ".heart::before {", + "For the
content: \"\";
background-color: yellow;
border-radius: 25%;
position: absolute;
height: 50px;
width: 70px;
top: -50px;
left: 5px;
}
::before
and ::after
pseudo-elements to function properly, they must have a defined content
property. This property is usually used to add things like a photo or text to the selected element. When the ::before
and ::after
pseudo-elements are used to make shapes, the content
property is still required, but it's set to an empty string.",
+ "In the above example, the element with the class of heart
has a ::before
pseudo-element that produces a yellow rectangle with height
and width
of 50px and 70px, respectively. This rectangle has round corners due to its 25% border radius and is positioned absolutely at 5px from the left
and 50px above the top
of the element.",
"heart:after
selector, change the background-color
to pink and the border-radius
to 50%.",
+ "Transform the element on the screen to a heart. In the heart::after
selector, change the background-color
to pink and the border-radius
to 50%.",
"Next, target the element with the class heart
(just heart
) and fill in the transform
property. Use the rotate()
function with -45 degrees. (rotate()
works the same way that skewX()
and skewY()
do).",
- "Finally, in the heart:before
selector, set its content
property to an empty string."
+ "Finally, in the heart::before
selector, set its content
property to an empty string."
],
"tests": [
{
"text":
- "The background-color
property of the heart:after
selector should be pink.",
+ "The background-color
property of the heart::after
selector should be pink.",
"testString":
- "assert(code.match(/\\.heart:after\\s*?{\\s*?background-color\\s*?:\\s*?pink\\s*?;/gi), 'The background-color
property of the heart:after
selector should be pink.');"
+ "assert(code.match(/\\.heart::after\\s*?{\\s*?background-color\\s*?:\\s*?pink\\s*?;/gi), 'The background-color
property of the heart::after
selector should be pink.');"
},
{
"text":
- "The border-radius
of the heart:after
selector should be 50%.",
+ "The border-radius
of the heart::after
selector should be 50%.",
"testString":
- "assert(code.match(/border-radius\\s*?:\\s*?50%/gi).length == 2, 'The border-radius
of the heart:after
selector should be 50%.');"
+ "assert(code.match(/border-radius\\s*?:\\s*?50%/gi).length == 2, 'The border-radius
of the heart::after
selector should be 50%.');"
},
{
"text":
@@ -2652,9 +2652,9 @@
},
{
"text":
- "The content
of the heart:before
selector should be an empty string.",
+ "The content
of the heart::before
selector should be an empty string.",
"testString":
- "assert(code.match(/\\.heart:before\\s*?{\\s*?content\\s*?:\\s*?(\"|')\\1\\s*?;/gi), 'The content
of the heart:before
selector should be an empty string.');"
+ "assert(code.match(/\\.heart::before\\s*?{\\s*?content\\s*?:\\s*?(\"|')\\1\\s*?;/gi), 'The content
of the heart::before
selector should be an empty string.');"
}
],
"solutions": [],
@@ -2681,7 +2681,7 @@
" width: 50px;",
" transform: ;",
"}",
- ".heart:after {",
+ ".heart::after {",
" background-color: blue;",
" content: \"\";",
" border-radius: 25%;",
@@ -2691,7 +2691,7 @@
" top: 0px;",
" left: 25px;",
"}",
- ".heart:before {",
+ ".heart::before {",
" content: ;",
" background-color: pink;",
" border-radius: 50%;",