diff --git a/challenges/01-nesting/01/sass/style.sass b/challenges/01-nesting/01/sass/style.sass new file mode 100644 index 0000000..72547b8 --- /dev/null +++ b/challenges/01-nesting/01/sass/style.sass @@ -0,0 +1,6 @@ +.primary-article + padding: 3rem 1rem + + +.pointing-list + margin: 2rem 0 diff --git a/challenges/01-nesting/01/sass/style.scss b/challenges/01-nesting/01/sass/style.scss new file mode 100644 index 0000000..8359b1c --- /dev/null +++ b/challenges/01-nesting/01/sass/style.scss @@ -0,0 +1,7 @@ +.primary-article { + padding: 3rem 1rem; +} + +.pointing-list { + margin: 2rem 0; +} diff --git a/challenges/01-nesting/02/finished-example/css/styles.css b/challenges/01-nesting/02/finished-example/css/styles.css new file mode 100644 index 0000000..6af1222 --- /dev/null +++ b/challenges/01-nesting/02/finished-example/css/styles.css @@ -0,0 +1,38 @@ +body { + margin: 4rem; + font-size: 1.25rem; + font-family: system-ui, sans-serif; + text-align: center; +} + +.btn { + display: inline-block; + padding: 1em 2em; + cursor: pointer; + border: 0; + text-decoration: none; + text-transform: uppercase; + color: white; +} +.btn__primary { + background: #3f637d; +} +.btn__primary:hover, +.btn__primary:focus { + background: #2b4355; +} +.btn__secondary { + background: #4c4171; +} +.btn__secondary:hover, +.btn__secondary:focus { + background: #2b2541; +} +.btn__accent { + background: #efca5d; + color: black; +} +.btn__accent:hover, +.btn__accent:focus { + background: #d1a215; +} diff --git a/challenges/01-nesting/02/finished-example/nesting-challenge.html b/challenges/01-nesting/02/finished-example/nesting-challenge.html new file mode 100644 index 0000000..a57c79f --- /dev/null +++ b/challenges/01-nesting/02/finished-example/nesting-challenge.html @@ -0,0 +1,11 @@ + + +

Nesting Challenge

+

Style the following buttons so that they look like the provided sample. When you're done, not only should it look similar, but the file structure and final CSS file should match the provided files.

+ + +Primary button +Secondary button +Accent button \ No newline at end of file diff --git a/challenges/01-nesting/02/img/file-structure.png b/challenges/01-nesting/02/img/file-structure.png new file mode 100644 index 0000000..d603bbb Binary files /dev/null and b/challenges/01-nesting/02/img/file-structure.png differ diff --git a/challenges/01-nesting/02/img/final-css.png b/challenges/01-nesting/02/img/final-css.png new file mode 100644 index 0000000..f47401d Binary files /dev/null and b/challenges/01-nesting/02/img/final-css.png differ diff --git a/challenges/01-nesting/02/img/final-layout.png b/challenges/01-nesting/02/img/final-layout.png new file mode 100644 index 0000000..0ef86e5 Binary files /dev/null and b/challenges/01-nesting/02/img/final-layout.png differ diff --git a/challenges/01-nesting/02/nesting-challenge.html b/challenges/01-nesting/02/nesting-challenge.html new file mode 100644 index 0000000..a57c79f --- /dev/null +++ b/challenges/01-nesting/02/nesting-challenge.html @@ -0,0 +1,11 @@ + + +

Nesting Challenge

+

Style the following buttons so that they look like the provided sample. When you're done, not only should it look similar, but the file structure and final CSS file should match the provided files.

+ + +Primary button +Secondary button +Accent button \ No newline at end of file diff --git a/challenges/01-nesting/02/sass/styles.sass b/challenges/01-nesting/02/sass/styles.sass new file mode 100644 index 0000000..e79d84a --- /dev/null +++ b/challenges/01-nesting/02/sass/styles.sass @@ -0,0 +1,16 @@ +$clr-primary: hsl(206, 33%, 37%) +$clr-secondary: hsl(253, 27%, 35%) +$clr-accent: hsl(45, 82%, 65%) + +body + margin: 4rem + font: + size: 1.25rem + family: system-ui, sans-serif + text-align: center + +.btn + /* your code starts here */ + + /* your code ends here */ + diff --git a/challenges/01-nesting/02/scss/styles.scss b/challenges/01-nesting/02/scss/styles.scss new file mode 100644 index 0000000..1d78451 --- /dev/null +++ b/challenges/01-nesting/02/scss/styles.scss @@ -0,0 +1,18 @@ +$clr-primary: hsl(206, 33%, 37%); +$clr-secondary: hsl(253, 27%, 35%); +$clr-accent: hsl(45, 82%, 65%); + +body { + margin: 4rem; + font: { + size: 1.25rem; + family: system-ui, sans-serif; + } + text-align: center; +} + +.btn { + /* your code starts here */ + + /* your code ends here */ +} diff --git a/challenges/01-nesting/03/finished-example/css/styles.css b/challenges/01-nesting/03/finished-example/css/styles.css new file mode 100644 index 0000000..46bc9eb --- /dev/null +++ b/challenges/01-nesting/03/finished-example/css/styles.css @@ -0,0 +1,67 @@ +body { + margin: 4rem 0 0; + font-size: 1.25rem; + font-family: system-ui, sans-serif; + text-align: center; +} + +section { + padding-block: 3rem; +} + +.container { + width: min(100% - 4rem, 50rem); + margin-inline: auto; +} + +.surface-primary { + background: #3f637d; + color: white; +} + +.surface-secondary { + background: #4c4171; + color: white; +} + +.surface-accent { + background: #efca5d; + color: black; +} + +.btn { + display: inline-block; + padding: 1em 2em; + cursor: pointer; + border: 0; + text-decoration: none; + text-transform: uppercase; +} +.surface-primary .btn, +.surface-secondary .btn { + background: white; + color: black; +} +.surface-accent .btn { + color: white; + background: black; +} +.btn:hover, +.btn:focus { + background: inherit; + color: inherit; + outline: currentColor 2px solid; +} + +.text-subdued { + font-size: 1rem; +} +.surface-primary .text-subdued { + opacity: 0.8; +} +.surface-secondary .text-subdued { + opacity: 0.7; +} +.surface-accent .text-subdued { + opacity: 0.6; +} diff --git a/challenges/01-nesting/03/finished-example/nesting-challenge-02.html b/challenges/01-nesting/03/finished-example/nesting-challenge-02.html new file mode 100644 index 0000000..f634142 --- /dev/null +++ b/challenges/01-nesting/03/finished-example/nesting-challenge-02.html @@ -0,0 +1,36 @@ + + +

Nesting Challenge 02

+
+
+

Lorem, ipsum dolor.

+

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Error similique, at incidunt consequuntur, eveniet + dignissimos asperiores sequi quas adipisci repellat placeat! Pariatur praesentium explicabo consequatur.

+

Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam earum dicta voluptatum + amet ipsam sed + accusamus quia illum quibusdam maxime.

+ Lorem, ipsum +
+
+
+
+

Illum, quos architecto!

+

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Error similique, at incidunt consequuntur, eveniet + dignissimos asperiores sequi quas adipisci repellat placeat! Pariatur praesentium explicabo consequatur.

+

Quibusdam assumenda obcaecati nostrum, eos, necessitatibus sequi quod iure ratione, + molestiae quaerat alias + molestias rem. Aut eligendi laborum quae veritatis!

+ Quod, ducimus +
+
+
+
+

Culpa, dolorum aliquid.

+

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Error similique, at incidunt consequuntur, eveniet + dignissimos asperiores sequi quas adipisci repellat placeat! Pariatur praesentium explicabo consequatur.

+

Praesentium veniam excepturi quia possimus sint nulla repellendus aperiam nemo, saepe + dicta, ad, deleniti + mollitia optio vitae eligendi est a.

+ Doloribus, voluptatibus +
+
\ No newline at end of file diff --git a/challenges/01-nesting/03/img/file-structure.png b/challenges/01-nesting/03/img/file-structure.png new file mode 100644 index 0000000..6bb34a6 Binary files /dev/null and b/challenges/01-nesting/03/img/file-structure.png differ diff --git a/challenges/01-nesting/03/img/final-css.png b/challenges/01-nesting/03/img/final-css.png new file mode 100644 index 0000000..eebfae0 Binary files /dev/null and b/challenges/01-nesting/03/img/final-css.png differ diff --git a/challenges/01-nesting/03/img/final-layout.png b/challenges/01-nesting/03/img/final-layout.png new file mode 100644 index 0000000..a238a18 Binary files /dev/null and b/challenges/01-nesting/03/img/final-layout.png differ diff --git a/challenges/01-nesting/03/nesting-challenge-02.html b/challenges/01-nesting/03/nesting-challenge-02.html new file mode 100644 index 0000000..f634142 --- /dev/null +++ b/challenges/01-nesting/03/nesting-challenge-02.html @@ -0,0 +1,36 @@ + + +

Nesting Challenge 02

+
+
+

Lorem, ipsum dolor.

+

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Error similique, at incidunt consequuntur, eveniet + dignissimos asperiores sequi quas adipisci repellat placeat! Pariatur praesentium explicabo consequatur.

+

Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam earum dicta voluptatum + amet ipsam sed + accusamus quia illum quibusdam maxime.

+ Lorem, ipsum +
+
+
+
+

Illum, quos architecto!

+

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Error similique, at incidunt consequuntur, eveniet + dignissimos asperiores sequi quas adipisci repellat placeat! Pariatur praesentium explicabo consequatur.

+

Quibusdam assumenda obcaecati nostrum, eos, necessitatibus sequi quod iure ratione, + molestiae quaerat alias + molestias rem. Aut eligendi laborum quae veritatis!

+ Quod, ducimus +
+
+
+
+

Culpa, dolorum aliquid.

+

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Error similique, at incidunt consequuntur, eveniet + dignissimos asperiores sequi quas adipisci repellat placeat! Pariatur praesentium explicabo consequatur.

+

Praesentium veniam excepturi quia possimus sint nulla repellendus aperiam nemo, saepe + dicta, ad, deleniti + mollitia optio vitae eligendi est a.

+ Doloribus, voluptatibus +
+
\ No newline at end of file diff --git a/challenges/01-nesting/03/sass/styles.sass b/challenges/01-nesting/03/sass/styles.sass new file mode 100644 index 0000000..e79d84a --- /dev/null +++ b/challenges/01-nesting/03/sass/styles.sass @@ -0,0 +1,16 @@ +$clr-primary: hsl(206, 33%, 37%) +$clr-secondary: hsl(253, 27%, 35%) +$clr-accent: hsl(45, 82%, 65%) + +body + margin: 4rem + font: + size: 1.25rem + family: system-ui, sans-serif + text-align: center + +.btn + /* your code starts here */ + + /* your code ends here */ + diff --git a/challenges/01-nesting/03/scss/styles.scss b/challenges/01-nesting/03/scss/styles.scss new file mode 100644 index 0000000..8ae218d --- /dev/null +++ b/challenges/01-nesting/03/scss/styles.scss @@ -0,0 +1,54 @@ +@use "mixins"; + +$clr-primary-400: hsl(206, 33%, 37%); +$clr-primary-500: hsl(206, 33%, 25%); +$clr-secondary-400: hsl(253, 27%, 35%); +$clr-secondary-500: hsl(253, 27%, 20%); +$clr-accent-400: hsl(45, 82%, 65%); +$clr-accent-500: hsl(45, 82%, 45%); + +body { + margin: 4rem 0 0; + font: { + size: 1.25rem; + family: system-ui, sans-serif; + } + text-align: center; +} + +section { + padding-block: 3rem; +} + +.container { + width: min(100% - 4rem, 50rem); + margin-inline: auto; +} + +.surface-primary { + background: $clr-primary-400; + color: white; +} + +.surface-secondary { + background: $clr-secondary-400; + color: white; +} + +.surface-accent { + background: $clr-accent-400; + color: black; +} + +.btn { + display: inline-block; + padding: 1em 2em; + cursor: pointer; + border: 0; + text-decoration: none; + text-transform: uppercase; +} + +.text-subdued { + font-size: 1rem; +} diff --git a/challenges/02-variables/01/colors.md b/challenges/02-variables/01/colors.md new file mode 100644 index 0000000..577adfd --- /dev/null +++ b/challenges/02-variables/01/colors.md @@ -0,0 +1,19 @@ +# Colors + +## White: #f8f7f7 + +- page background +- outline button background + +## Black: #201e1f + +- body color +- button hover/focus background +- shadow color on the card + +## Red: #da3f0b + +- title color +- button borders +- primary button background +- button hover/focus shadow diff --git a/challenges/02-variables/01/finished-example/css/variable-challenge.css b/challenges/02-variables/01/finished-example/css/variable-challenge.css new file mode 100644 index 0000000..ca7176d --- /dev/null +++ b/challenges/02-variables/01/finished-example/css/variable-challenge.css @@ -0,0 +1,53 @@ +* { + box-sizing: border-box; + margin: 0; +} + +body { + font-size: 1.75rem; + font-family: system-ui, sans-serif; + line-height: 1.6; + background: #f8f7f7; + color: #201e1f; + /* this is being used to center the content on the screen */ + display: grid; + height: 100vh; + place-items: center; +} + +.card { + display: grid; + gap: 0.75em; + width: min(90%, 60rem); + padding: 2em; + box-shadow: 0 0 2rem #201e1f; + border-radius: 0.5rem; +} +.card__title { + color: #da3f0b; +} + +.btn { + display: inline-block; + padding: 0.5em 1.5em; + text-decoration: none; + border: #da3f0b solid 3px; + border-radius: 0.5rem; +} +.btn--primary { + background: #da3f0b; + color: #f8f7f7; +} +.btn--outline { + color: #da3f0b; +} +.btn:hover, .btn:focus { + background: #201e1f; + color: #f8f7f7; + box-shadow: 0 0 1rem #da3f0b; +} + +.flex-group { + display: flex; + gap: 1rem; +}/*# sourceMappingURL=variable-challenge.css.map */ \ No newline at end of file diff --git a/challenges/02-variables/01/finished-example/index.html b/challenges/02-variables/01/finished-example/index.html new file mode 100644 index 0000000..d2d4994 --- /dev/null +++ b/challenges/02-variables/01/finished-example/index.html @@ -0,0 +1,26 @@ + + + + + + + + Variable challenge + + + + +
+

This is a card

+

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.

+
+ Buy now + More info +
+
+ + + \ No newline at end of file diff --git a/challenges/02-variables/01/index.html b/challenges/02-variables/01/index.html new file mode 100644 index 0000000..d2d4994 --- /dev/null +++ b/challenges/02-variables/01/index.html @@ -0,0 +1,26 @@ + + + + + + + + Variable challenge + + + + +
+

This is a card

+

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.

+
+ Buy now + More info +
+
+ + + \ No newline at end of file diff --git a/challenges/02-variables/01/sass/variable-challenge.sass b/challenges/02-variables/01/sass/variable-challenge.sass new file mode 100644 index 0000000..020e6a9 --- /dev/null +++ b/challenges/02-variables/01/sass/variable-challenge.sass @@ -0,0 +1,28 @@ +* + box-sizing: border-box + margin: 0 + +body + font-size: 1.75rem + font-family: system-ui, sans-serif + line-height: 1.6 + + /* this is being used to center the content on the screen */ + display: grid + height: 100vh + place-items: center + +.card + display: grid + gap: 0.75em + width: min(90%, 60rem) + padding: 2em + +.btn + display: inline-block + padding: 0.5em 1.5em + text-decoration: none + +.flex-group + display: flex + gap: 1rem \ No newline at end of file diff --git a/challenges/02-variables/01/scss/variable-challenge.scss b/challenges/02-variables/01/scss/variable-challenge.scss new file mode 100644 index 0000000..4184e29 --- /dev/null +++ b/challenges/02-variables/01/scss/variable-challenge.scss @@ -0,0 +1,33 @@ +* { + box-sizing: border-box; + margin: 0; +} + +body { + font-size: 1.75rem; + font-family: system-ui, sans-serif; + line-height: 1.6; + + /* this is being used to center the content on the screen */ + display: grid; + height: 100vh; + place-items: center; +} + +.card { + display: grid; + gap: 0.75em; + width: min(90%, 60rem); + padding: 2em; +} + +.btn { + display: inline-block; + padding: 0.5em 1.5em; + text-decoration: none; +} + +.flex-group { + display: flex; + gap: 1rem; +} diff --git a/challenges/03-mixins/01/finished-example/css/styles.css b/challenges/03-mixins/01/finished-example/css/styles.css new file mode 100644 index 0000000..a53cde5 --- /dev/null +++ b/challenges/03-mixins/01/finished-example/css/styles.css @@ -0,0 +1,80 @@ +body { + font-family: system-ui; + margin: 0; +} + +.section-one, +.section-two, +.section-three { + text-align: center; + padding: 10vh 0; +} + +.title::after { + content: ""; + display: block; + width: 5rem; + height: 1px; + background-color: black; + margin: 2rem auto; +} + +.section-one { + background-image: linear-gradient(45deg, red, blue); + color: white; +} + +.section-two { + background-image: linear-gradient(-72deg, purple, limegreen); + color: white; +} + +.section-three { + background-image: linear-gradient(0deg, orange, yellow); +} + +.button-one { + display: inline-block; + padding: 0.5em 1.5em; + color: white; + background-color: black; +} +.button-one:hover, .button-one:focus { + color: black; + background-color: white; +} + +.button-two { + display: inline-block; + padding: 1em 3em; + color: yellow; + background-color: #3b0f0f; +} +.button-two:hover, .button-two:focus { + color: #3b0f0f; + background-color: yellow; +} + +.badge-one { + display: inline-block; + padding: 0.5em 1.5em; + color: black; + background-color: white; +} +.badge-one:hover, .badge-one:focus { + color: black; + background-color: white; +} + +.badge-two { + display: inline-block; + padding: 0.25em 0.75em; + color: #006eff; + background-color: #0f0f1d; +} +.badge-two:hover, .badge-two:focus { + color: #006eff; + background-color: #0f0f1d; +} + +/*# sourceMappingURL=styles.css.map */ diff --git a/challenges/03-mixins/01/finished-example/index.html b/challenges/03-mixins/01/finished-example/index.html new file mode 100644 index 0000000..0ac7fa5 --- /dev/null +++ b/challenges/03-mixins/01/finished-example/index.html @@ -0,0 +1,30 @@ + + + + + + + + Mixin Challenge + + + + +
+

Section One

+ button +
+ +
+

Section Two

+ button +
+ +
+

Section Three

+

badge

+

badge

+
+ + + \ No newline at end of file diff --git a/challenges/03-mixins/01/index.html b/challenges/03-mixins/01/index.html new file mode 100644 index 0000000..0ac7fa5 --- /dev/null +++ b/challenges/03-mixins/01/index.html @@ -0,0 +1,30 @@ + + + + + + + + Mixin Challenge + + + + +
+

Section One

+ button +
+ +
+

Section Two

+ button +
+ +
+

Section Three

+

badge

+

badge

+
+ + + \ No newline at end of file diff --git a/challenges/03-mixins/01/scss/styles.scss b/challenges/03-mixins/01/scss/styles.scss new file mode 100644 index 0000000..bc3cbc7 --- /dev/null +++ b/challenges/03-mixins/01/scss/styles.scss @@ -0,0 +1,11 @@ +body { + font-family: system-ui; + margin: 0; +} + +.section-one, +.section-two, +.section-three { + text-align: center; + padding: 10vh 0; +} diff --git a/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/feline.jpg b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/feline.jpg new file mode 100644 index 0000000..6f30690 Binary files /dev/null and b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/feline.jpg differ diff --git a/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/m-jacket.jpg b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/m-jacket.jpg new file mode 100644 index 0000000..26a4bcc Binary files /dev/null and b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/m-jacket.jpg differ diff --git a/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/outcast.jpg b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/outcast.jpg new file mode 100644 index 0000000..5c723f3 Binary files /dev/null and b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/outcast.jpg differ diff --git a/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/peace.jpg b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/peace.jpg new file mode 100644 index 0000000..de44ffb Binary files /dev/null and b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/peace.jpg differ diff --git a/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/plus-icon.svg b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/plus-icon.svg new file mode 100644 index 0000000..f1b7771 --- /dev/null +++ b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/plus-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/shoes.jpg b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/shoes.jpg new file mode 100644 index 0000000..8a39734 Binary files /dev/null and b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/shoes.jpg differ diff --git a/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/w-jacket.jpg b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/w-jacket.jpg new file mode 100644 index 0000000..262fe64 Binary files /dev/null and b/challenges/03-mixins/02-tshirts-themes/design-and-assets/assets/w-jacket.jpg differ diff --git a/challenges/03-mixins/02-tshirts-themes/design-and-assets/design-info.md b/challenges/03-mixins/02-tshirts-themes/design-and-assets/design-info.md new file mode 100644 index 0000000..01006df --- /dev/null +++ b/challenges/03-mixins/02-tshirts-themes/design-and-assets/design-info.md @@ -0,0 +1,31 @@ +# Design info - t-shirt project + +## Typography + +### Fonts + +- Roboto + + - Regular / 400 + - Bold / 700 + - Black / 900 + +- Sizes + - 400: 1.125rem + - 500: 1.25rem + - 600: 2rem + - 700: 3rem + +### Colors + +- red-400: hsla(357, 100%, 68%, 1); +- red-500: hsl(357, 74%, 40%); +- blue-800: hsla(216, 71%, 16%, 1); +- neutral-100: hsl(0 0% 100%); + +### Sizes + +- size-8: .5rem +- size-16: 1rem +- size-32: 2rem +- size-36: 3rem diff --git a/challenges/03-mixins/02-tshirts-themes/design-and-assets/the-design.png b/challenges/03-mixins/02-tshirts-themes/design-and-assets/the-design.png new file mode 100644 index 0000000..59ac15c Binary files /dev/null and b/challenges/03-mixins/02-tshirts-themes/design-and-assets/the-design.png differ diff --git a/challenges/finsihed-versoins/01/css/styles.css b/challenges/finsihed-versoins/01/css/styles.css new file mode 100644 index 0000000..fa4f473 --- /dev/null +++ b/challenges/finsihed-versoins/01/css/styles.css @@ -0,0 +1,80 @@ +body { + font-family: system-ui; + margin: 0; +} + +.section-one, +.section-two, +.section-three { + text-align: center; + padding: 10vh 0; +} + +.title::after { + content: ""; + display: block; + width: 5rem; + height: 1px; + background-color: #12a7cc; + margin: 1rem auto; +} + +.section-one { + background-image: linear-gradient(45deg, red, blue); + color: white; +} + +.section-two { + background-image: linear-gradient(-72deg, purple, limegreen); + color: white; +} + +.section-three { + background-image: linear-gradient(0deg, orange, yellow); +} + +.button-one { + display: inline-block; + padding: 0.5em 1.5em; + color: white; + background-color: black; +} +.button-one:hover, .button-one:focus { + color: black; + background-color: white; +} + +.button-two { + display: inline-block; + padding: 1em 3em; + color: yellow; + background-color: #3b0f0f; +} +.button-two:hover, .button-two:focus { + color: #3b0f0f; + background-color: yellow; +} + +.badge-one { + display: inline-block; + padding: 0.5em 1.5em; + color: black; + background-color: white; +} +.badge-one:hover, .badge-one:focus { + color: black; + background-color: white; +} + +.badge-two { + display: inline-block; + padding: 0.25em 0.75em; + color: #006eff; + background-color: #0f0f1d; +} +.badge-two:hover, .badge-two:focus { + color: #006eff; + background-color: #0f0f1d; +} + +/*# sourceMappingURL=styles.css.map */ diff --git a/challenges/finsihed-versoins/01/css/styles.css.map b/challenges/finsihed-versoins/01/css/styles.css.map new file mode 100644 index 0000000..a91c736 --- /dev/null +++ b/challenges/finsihed-versoins/01/css/styles.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../scss/styles.scss"],"names":[],"mappings":"AA2BA;EACE;EACA;;;AAGF;AAAA;AAAA;EAGE;EACA;;;AA/BA;EACE;EACA;EACA,OAgCwB;EA/BxB,QA+B8B;EA9B9B,kBA8BmC;EA7BnC;;;AAgCJ;EA1CE;EA4CA;;;AAGF;EA/CE;EAiDA;;;AAGF;EApDE;;;AAwDF;EAzCE;EACA;EACA,OAwC2B;EAvC3B,kBAuCkC;;AAtClC;EAEE,OAoCuC;EAnCvC,kBAmC8C;;;AAGlD;EA7CE;EACA;EACA,OA4CyB;EA3CzB,kBA2CiC;;AA1CjC;EAEE,OAwCgD;EAvChD,kBAuCiE;;;AAGrE;EAjDE;EACA;EACA,OAgD2B;EA/C3B,kBA+CkC;;AA9ClC;EAEE,OA4CyB;EA3CzB,kBA2CgC;;;AAGpC;EArDE;EACA;EACA,OAoD4B;EAnD5B,kBAmD8C;;AAlD9C;EAEE,OAgD0B;EA/C1B,kBA+C4C","file":"styles.css"} \ No newline at end of file diff --git a/challenges/finsihed-versoins/01/finished-example/css/styles.css b/challenges/finsihed-versoins/01/finished-example/css/styles.css new file mode 100644 index 0000000..a53cde5 --- /dev/null +++ b/challenges/finsihed-versoins/01/finished-example/css/styles.css @@ -0,0 +1,80 @@ +body { + font-family: system-ui; + margin: 0; +} + +.section-one, +.section-two, +.section-three { + text-align: center; + padding: 10vh 0; +} + +.title::after { + content: ""; + display: block; + width: 5rem; + height: 1px; + background-color: black; + margin: 2rem auto; +} + +.section-one { + background-image: linear-gradient(45deg, red, blue); + color: white; +} + +.section-two { + background-image: linear-gradient(-72deg, purple, limegreen); + color: white; +} + +.section-three { + background-image: linear-gradient(0deg, orange, yellow); +} + +.button-one { + display: inline-block; + padding: 0.5em 1.5em; + color: white; + background-color: black; +} +.button-one:hover, .button-one:focus { + color: black; + background-color: white; +} + +.button-two { + display: inline-block; + padding: 1em 3em; + color: yellow; + background-color: #3b0f0f; +} +.button-two:hover, .button-two:focus { + color: #3b0f0f; + background-color: yellow; +} + +.badge-one { + display: inline-block; + padding: 0.5em 1.5em; + color: black; + background-color: white; +} +.badge-one:hover, .badge-one:focus { + color: black; + background-color: white; +} + +.badge-two { + display: inline-block; + padding: 0.25em 0.75em; + color: #006eff; + background-color: #0f0f1d; +} +.badge-two:hover, .badge-two:focus { + color: #006eff; + background-color: #0f0f1d; +} + +/*# sourceMappingURL=styles.css.map */ diff --git a/challenges/finsihed-versoins/01/finished-example/index.html b/challenges/finsihed-versoins/01/finished-example/index.html new file mode 100644 index 0000000..0ac7fa5 --- /dev/null +++ b/challenges/finsihed-versoins/01/finished-example/index.html @@ -0,0 +1,30 @@ + + + + + + + + Mixin Challenge + + + + +
+

Section One

+ button +
+ +
+

Section Two

+ button +
+ +
+

Section Three

+

badge

+

badge

+
+ + + \ No newline at end of file diff --git a/challenges/finsihed-versoins/01/index.html b/challenges/finsihed-versoins/01/index.html new file mode 100644 index 0000000..0ac7fa5 --- /dev/null +++ b/challenges/finsihed-versoins/01/index.html @@ -0,0 +1,30 @@ + + + + + + + + Mixin Challenge + + + + +
+

Section One

+ button +
+ +
+

Section Two

+ button +
+ +
+

Section Three

+

badge

+

badge

+
+ + + \ No newline at end of file diff --git a/challenges/finsihed-versoins/01/scss/styles.scss b/challenges/finsihed-versoins/01/scss/styles.scss new file mode 100644 index 0000000..972de54 --- /dev/null +++ b/challenges/finsihed-versoins/01/scss/styles.scss @@ -0,0 +1,72 @@ +@mixin gradient($deg, $c1, $c2) { + background-image: linear-gradient($deg, $c1, $c2); +} + +@mixin pseudo-underline($width, $height, $bg, $margin) { + &::after { + content: ""; + display: block; + width: $width; + height: $height; + background-color: $bg; + margin: $margin auto; + } +} + +@mixin ui-element($size, $color, $bg, $hover: $color, $hover-bg: $bg) { + display: inline-block; + padding: $size ($size * 3); + color: $color; + background-color: $bg; + &:hover, + &:focus { + color: $hover; + background-color: $hover-bg; + } +} + +body { + font-family: system-ui; + margin: 0; +} + +.section-one, +.section-two, +.section-three { + text-align: center; + padding: 10vh 0; +} + +.title { + @include pseudo-underline(5rem, 1px, rgb(18, 167, 204), 1rem); +} + +.section-one { + @include gradient(45deg, red, blue); + color: white; +} + +.section-two { + @include gradient(-72deg, purple, limegreen); + color: white; +} + +.section-three { + @include gradient(0deg, orange, yellow); +} + +.button-one { + @include ui-element(0.5em, white, black, black, white); +} + +.button-two { + @include ui-element(1em, yellow, rgb(59, 15, 15), rgb(59, 15, 15), yellow); +} + +.badge-one { + @include ui-element(0.5em, black, white); +} + +.badge-two { + @include ui-element(0.25em, rgb(0, 110, 255), rgb(15, 15, 29)); +} diff --git a/projects/01-pricing-tiers/01-basic-starter/package.json b/projects/01-pricing-tiers/01-basic-starter/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/01-pricing-tiers/01-basic-starter/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/01-pricing-tiers/01-basic-starter/src/index.html b/projects/01-pricing-tiers/01-basic-starter/src/index.html new file mode 100644 index 0000000..43bd303 --- /dev/null +++ b/projects/01-pricing-tiers/01-basic-starter/src/index.html @@ -0,0 +1,19 @@ + + + + + + + + Hosting Plans + + + + + + + + + + + \ No newline at end of file diff --git a/projects/01-pricing-tiers/01-basic-starter/src/sass/style.scss b/projects/01-pricing-tiers/01-basic-starter/src/sass/style.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/01-pricing-tiers/02-setting-up-the-variables/package.json b/projects/01-pricing-tiers/02-setting-up-the-variables/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/01-pricing-tiers/02-setting-up-the-variables/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/01-pricing-tiers/02-setting-up-the-variables/src/index.html b/projects/01-pricing-tiers/02-setting-up-the-variables/src/index.html new file mode 100644 index 0000000..8326819 --- /dev/null +++ b/projects/01-pricing-tiers/02-setting-up-the-variables/src/index.html @@ -0,0 +1,85 @@ + + + + + + + + Hosting Plans + + + + + + + +

Hosting Plans

+
+
+ +
+

Free

+
    +
  • + 1 domain +
  • +
  • + 5gb of bandwidth +
  • +
  • + 1gb of diskspace +
  • +
  • + 5,000 monthly uniques +
  • +
+

$0/month

+ +
+ +
+

Tiny

+
    +
  • + 5 domain +
  • +
  • + 250gb of bandwidth +
  • +
  • + 5gb of diskspace +
  • +
  • + 15,000 monthly uniques +
  • +
+

$19/month

+ +
+ +
+

Large

+
    +
  • + 15 domain +
  • +
  • + 750gb of bandwidth +
  • +
  • + 20gb of diskspace +
  • +
  • + 50,000 monthly uniques +
  • +
+

$49/month

+ +
+
+ + +
+ + + \ No newline at end of file diff --git a/projects/01-pricing-tiers/02-setting-up-the-variables/src/sass/style.scss b/projects/01-pricing-tiers/02-setting-up-the-variables/src/sass/style.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/01-pricing-tiers/03-simple-reset/package.json b/projects/01-pricing-tiers/03-simple-reset/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/01-pricing-tiers/03-simple-reset/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/01-pricing-tiers/03-simple-reset/src/index.html b/projects/01-pricing-tiers/03-simple-reset/src/index.html new file mode 100644 index 0000000..8326819 --- /dev/null +++ b/projects/01-pricing-tiers/03-simple-reset/src/index.html @@ -0,0 +1,85 @@ + + + + + + + + Hosting Plans + + + + + + + +

Hosting Plans

+
+
+ +
+

Free

+
    +
  • + 1 domain +
  • +
  • + 5gb of bandwidth +
  • +
  • + 1gb of diskspace +
  • +
  • + 5,000 monthly uniques +
  • +
+

$0/month

+ +
+ +
+

Tiny

+
    +
  • + 5 domain +
  • +
  • + 250gb of bandwidth +
  • +
  • + 5gb of diskspace +
  • +
  • + 15,000 monthly uniques +
  • +
+

$19/month

+ +
+ +
+

Large

+
    +
  • + 15 domain +
  • +
  • + 750gb of bandwidth +
  • +
  • + 20gb of diskspace +
  • +
  • + 50,000 monthly uniques +
  • +
+

$49/month

+ +
+
+ + +
+ + + \ No newline at end of file diff --git a/projects/01-pricing-tiers/03-simple-reset/src/sass/style.scss b/projects/01-pricing-tiers/03-simple-reset/src/sass/style.scss new file mode 100644 index 0000000..cd74633 --- /dev/null +++ b/projects/01-pricing-tiers/03-simple-reset/src/sass/style.scss @@ -0,0 +1,26 @@ +// colors +$color-neutral-100: #fff; +$color-neutral-900: #1f3049; +$color-primary-400: #0066ff; + +// font-families +$ff-sans: "Open Sans", sans-serif; + +// font-sizes +$fs-900: 3.75rem; // 60px +$fs-800: 3rem; // 48px +$fs-600: 1.5rem; // 24px +$fs-500: 1.3125rem; // 21px +$fs-400: 1.125rem; // 18px + +// font-weights +$fw-400: 400; +$fw-700: 700; + +// size/spacing values (Including the border-width) +$size-8: 0.5rem; +$size-12: 0.75rem; // (not in design) +$size-16: 1rem; +$size-20: 1.25rem; +$size-32: 2rem; +$size-36: 2.25rem; diff --git a/projects/01-pricing-tiers/04-styling-the-page/package.json b/projects/01-pricing-tiers/04-styling-the-page/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/01-pricing-tiers/04-styling-the-page/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/01-pricing-tiers/04-styling-the-page/src/index.html b/projects/01-pricing-tiers/04-styling-the-page/src/index.html new file mode 100644 index 0000000..8326819 --- /dev/null +++ b/projects/01-pricing-tiers/04-styling-the-page/src/index.html @@ -0,0 +1,85 @@ + + + + + + + + Hosting Plans + + + + + + + +

Hosting Plans

+
+
+ +
+

Free

+
    +
  • + 1 domain +
  • +
  • + 5gb of bandwidth +
  • +
  • + 1gb of diskspace +
  • +
  • + 5,000 monthly uniques +
  • +
+

$0/month

+ +
+ +
+

Tiny

+
    +
  • + 5 domain +
  • +
  • + 250gb of bandwidth +
  • +
  • + 5gb of diskspace +
  • +
  • + 15,000 monthly uniques +
  • +
+

$19/month

+ +
+ +
+

Large

+
    +
  • + 15 domain +
  • +
  • + 750gb of bandwidth +
  • +
  • + 20gb of diskspace +
  • +
  • + 50,000 monthly uniques +
  • +
+

$49/month

+ +
+
+ + +
+ + + \ No newline at end of file diff --git a/projects/01-pricing-tiers/04-styling-the-page/src/sass/style.scss b/projects/01-pricing-tiers/04-styling-the-page/src/sass/style.scss new file mode 100644 index 0000000..eaa4e00 --- /dev/null +++ b/projects/01-pricing-tiers/04-styling-the-page/src/sass/style.scss @@ -0,0 +1,55 @@ +// colors +$color-neutral-100: #fff; +$color-neutral-900: #1f3049; +$color-primary-400: #0066ff; + +// font-families +$ff-sans: "Open Sans", sans-serif; + +// font-sizes +$fs-900: 3.75rem; // 60px +$fs-800: 3rem; // 48px +$fs-600: 1.5rem; // 24px +$fs-500: 1.3125rem; // 21px +$fs-400: 1.125rem; // 18px + +// font-weights +$fw-400: 400; +$fw-700: 700; + +// size/spacing values (Including the border-width) +$size-8: 0.5rem; +$size-12: 0.75rem; // (not in design) +$size-16: 1rem; +$size-20: 1.25rem; +$size-32: 2rem; +$size-36: 2.25rem; + +// simple reset +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; + padding: 0; + font: inherit; +} + +// base styles + +body { + font-size: $fs-400; + font-weight: $fw-400; + color: $color-neutral-900; + background-color: $color-neutral-100; + font-family: $ff-sans; + text-align: center; +} + +.container { + width: min(100% - 2rem, 60rem); + margin-inline: auto; +} diff --git a/projects/01-pricing-tiers/05-inverted-colors/package.json b/projects/01-pricing-tiers/05-inverted-colors/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/01-pricing-tiers/05-inverted-colors/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/01-pricing-tiers/05-inverted-colors/src/index.html b/projects/01-pricing-tiers/05-inverted-colors/src/index.html new file mode 100644 index 0000000..8326819 --- /dev/null +++ b/projects/01-pricing-tiers/05-inverted-colors/src/index.html @@ -0,0 +1,85 @@ + + + + + + + + Hosting Plans + + + + + + + +

Hosting Plans

+
+
+ +
+

Free

+
    +
  • + 1 domain +
  • +
  • + 5gb of bandwidth +
  • +
  • + 1gb of diskspace +
  • +
  • + 5,000 monthly uniques +
  • +
+

$0/month

+ +
+ +
+

Tiny

+
    +
  • + 5 domain +
  • +
  • + 250gb of bandwidth +
  • +
  • + 5gb of diskspace +
  • +
  • + 15,000 monthly uniques +
  • +
+

$19/month

+ +
+ +
+

Large

+
    +
  • + 15 domain +
  • +
  • + 750gb of bandwidth +
  • +
  • + 20gb of diskspace +
  • +
  • + 50,000 monthly uniques +
  • +
+

$49/month

+ +
+
+ + +
+ + + \ No newline at end of file diff --git a/projects/01-pricing-tiers/05-inverted-colors/src/sass/style.scss b/projects/01-pricing-tiers/05-inverted-colors/src/sass/style.scss new file mode 100644 index 0000000..f45e2ae --- /dev/null +++ b/projects/01-pricing-tiers/05-inverted-colors/src/sass/style.scss @@ -0,0 +1,116 @@ +// colors +$color-neutral-100: #fff; +$color-neutral-900: #1f3049; +$color-primary-400: #0066ff; + +// font-families +$ff-sans: "Open Sans", sans-serif; + +// font-sizes +$fs-900: 3.75rem; // 60px +$fs-800: 3rem; // 48px +$fs-600: 1.5rem; // 24px +$fs-500: 1.3125rem; // 21px +$fs-400: 1.125rem; // 18px + +// font-weights +$fw-400: 400; +$fw-700: 700; + +// size/spacing values (Including the border-width) +$size-8: 0.5rem; +$size-12: 0.75rem; // (not in design) +$size-16: 1rem; +$size-20: 1.25rem; +$size-32: 2rem; +$size-36: 2.25rem; + +// simple reset +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; + padding: 0; + font: inherit; +} + +// base styles + +body { + font-size: $fs-400; + font-weight: $fw-400; + font-family: $ff-sans; + color: $color-neutral-900; + background-color: $color-neutral-100; + text-align: center; +} + +.container { + width: min(100% - 2rem, 60rem); + margin-inline: auto; +} + +.page-title { + color: $color-primary-400; + font-size: $fs-900; + margin-block: $size-32; +} + +.pricing-plans { + border: $size-8 solid $color-primary-400; + display: flex; +} + +.tier { + flex: 1; + padding: $size-36; + display: grid; + gap: $size-20; + + &__title { + text-transform: uppercase; + font-weight: $fw-700; + color: $color-primary-400; + } + + &__feature-list { + list-style: none; + } + + &__list-item { + &:not(:last-child)::after { + content: ""; + display: block; + height: 1px; + margin-block: $size-20; + background-color: $color-neutral-900; + opacity: 0.2; + } + } + + &__price { + font-size: $fs-800; + font-weight: $fw-700; + + span { + font-weight: $fw-400; + font-size: $fs-600; + } + } +} + +.button { + cursor: pointer; + border: 0; + text-transform: uppercase; + font-weight: $fw-700; + color: $color-neutral-100; + background-color: $color-primary-400; + padding: 1em 1.5em; + + justify-self: center; +} diff --git a/projects/01-pricing-tiers/06-button-states/package.json b/projects/01-pricing-tiers/06-button-states/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/01-pricing-tiers/06-button-states/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/01-pricing-tiers/06-button-states/src/index.html b/projects/01-pricing-tiers/06-button-states/src/index.html new file mode 100644 index 0000000..b0e881d --- /dev/null +++ b/projects/01-pricing-tiers/06-button-states/src/index.html @@ -0,0 +1,85 @@ + + + + + + + + Hosting Plans + + + + + + + +

Hosting Plans

+
+
+ +
+

Free

+
    +
  • + 1 domain +
  • +
  • + 5gb of bandwidth +
  • +
  • + 1gb of diskspace +
  • +
  • + 5,000 monthly uniques +
  • +
+

$0/month

+ +
+ +
+

Tiny

+
    +
  • + 5 domain +
  • +
  • + 250gb of bandwidth +
  • +
  • + 5gb of diskspace +
  • +
  • + 15,000 monthly uniques +
  • +
+

$19/month

+ +
+ +
+

Large

+
    +
  • + 15 domain +
  • +
  • + 750gb of bandwidth +
  • +
  • + 20gb of diskspace +
  • +
  • + 50,000 monthly uniques +
  • +
+

$49/month

+ +
+
+ + +
+ + + \ No newline at end of file diff --git a/projects/01-pricing-tiers/06-button-states/src/sass/style.scss b/projects/01-pricing-tiers/06-button-states/src/sass/style.scss new file mode 100644 index 0000000..ed03e2d --- /dev/null +++ b/projects/01-pricing-tiers/06-button-states/src/sass/style.scss @@ -0,0 +1,130 @@ +// colors +$color-neutral-100: #fff; +$color-neutral-900: #1f3049; +$color-primary-400: #0066ff; + +// font-families +$ff-sans: "Open Sans", sans-serif; + +// font-sizes +$fs-900: 3.75rem; // 60px +$fs-800: 3rem; // 48px +$fs-600: 1.5rem; // 24px +$fs-500: 1.3125rem; // 21px +$fs-400: 1.125rem; // 18px + +// font-weights +$fw-400: 400; +$fw-700: 700; + +// size/spacing values (Including the border-width) +$size-8: 0.5rem; +$size-12: 0.75rem; // (not in design) +$size-16: 1rem; +$size-20: 1.25rem; +$size-32: 2rem; +$size-36: 2.25rem; + +// simple reset +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; + padding: 0; + font: inherit; +} + +// base styles + +body { + font-size: $fs-400; + font-weight: $fw-400; + font-family: $ff-sans; + color: $color-neutral-900; + background-color: $color-neutral-100; + text-align: center; +} + +.container { + width: min(100% - 2rem, 60rem); + margin-inline: auto; +} + +.inverted { + background: $color-primary-400; + color: $color-neutral-100; +} + +.page-title { + color: $color-primary-400; + font-size: $fs-900; + margin-block: $size-32; +} + +.pricing-plans { + border: $size-8 solid $color-primary-400; + display: flex; +} + +.tier { + flex: 1; + padding: $size-36; + display: grid; + gap: $size-20; + + &__title { + text-transform: uppercase; + font-weight: $fw-700; + color: $color-primary-400; + + .inverted & { + color: $color-neutral-100; + } + } + + &__feature-list { + list-style: none; + } + + &__list-item { + &:not(:last-child)::after { + content: ""; + display: block; + height: 1px; + margin-block: $size-20; + background-color: $color-neutral-900; + opacity: 0.2; + } + } + + &__price { + font-size: $fs-800; + font-weight: $fw-700; + + span { + font-weight: $fw-400; + font-size: $fs-600; + } + } +} + +.button { + cursor: pointer; + border: 0; + text-transform: uppercase; + font-weight: $fw-700; + color: $color-neutral-100; + background-color: $color-primary-400; + padding: 1em 1.5em; + + justify-self: center; + + .inverted & { + color: $color-primary-400; + background-color: $color-neutral-100; + } +} diff --git a/projects/01-pricing-tiers/07-final-version/package.json b/projects/01-pricing-tiers/07-final-version/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/01-pricing-tiers/07-final-version/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/01-pricing-tiers/07-final-version/src/index.html b/projects/01-pricing-tiers/07-final-version/src/index.html new file mode 100644 index 0000000..b0e881d --- /dev/null +++ b/projects/01-pricing-tiers/07-final-version/src/index.html @@ -0,0 +1,85 @@ + + + + + + + + Hosting Plans + + + + + + + +

Hosting Plans

+
+
+ +
+

Free

+
    +
  • + 1 domain +
  • +
  • + 5gb of bandwidth +
  • +
  • + 1gb of diskspace +
  • +
  • + 5,000 monthly uniques +
  • +
+

$0/month

+ +
+ +
+

Tiny

+
    +
  • + 5 domain +
  • +
  • + 250gb of bandwidth +
  • +
  • + 5gb of diskspace +
  • +
  • + 15,000 monthly uniques +
  • +
+

$19/month

+ +
+ +
+

Large

+
    +
  • + 15 domain +
  • +
  • + 750gb of bandwidth +
  • +
  • + 20gb of diskspace +
  • +
  • + 50,000 monthly uniques +
  • +
+

$49/month

+ +
+
+ + +
+ + + \ No newline at end of file diff --git a/projects/01-pricing-tiers/07-final-version/src/sass/style.scss b/projects/01-pricing-tiers/07-final-version/src/sass/style.scss new file mode 100644 index 0000000..8e2d4e0 --- /dev/null +++ b/projects/01-pricing-tiers/07-final-version/src/sass/style.scss @@ -0,0 +1,136 @@ +// colors +$color-neutral-100: #fff; +$color-neutral-900: #1f3049; +$color-primary-400: #0066ff; + +// font-families +$ff-sans: "Open Sans", sans-serif; + +// font-sizes +$fs-900: 3.75rem; // 60px +$fs-800: 3rem; // 48px +$fs-600: 1.5rem; // 24px +$fs-500: 1.3125rem; // 21px +$fs-400: 1.125rem; // 18px + +// font-weights +$fw-400: 400; +$fw-700: 700; + +// size/spacing values (Including the border-width) +$size-8: 0.5rem; +$size-12: 0.75rem; // (not in design) +$size-16: 1rem; +$size-20: 1.25rem; +$size-32: 2rem; +$size-36: 2.25rem; + +// simple reset +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; + padding: 0; + font: inherit; +} + +// base styles + +body { + font-size: $fs-400; + font-weight: $fw-400; + font-family: $ff-sans; + color: $color-neutral-900; + background-color: $color-neutral-100; + text-align: center; +} + +.container { + width: min(100% - 2rem, 60rem); + margin-inline: auto; +} + +.inverted { + background: $color-primary-400; + color: $color-neutral-100; +} + +.page-title { + color: $color-primary-400; + font-size: $fs-900; + margin-block: $size-32; +} + +.pricing-plans { + border: $size-8 solid $color-primary-400; + display: flex; +} + +.tier { + flex: 1; + padding: $size-36; + display: grid; + gap: $size-20; + + &__title { + text-transform: uppercase; + font-weight: $fw-700; + color: $color-primary-400; + + .inverted & { + color: $color-neutral-100; + } + } + + &__feature-list { + list-style: none; + } + + &__list-item { + &:not(:last-child)::after { + content: ""; + display: block; + height: 1px; + margin-block: $size-20; + background-color: $color-neutral-900; + opacity: 0.2; + } + } + + &__price { + font-size: $fs-800; + font-weight: $fw-700; + + span { + font-weight: $fw-400; + font-size: $fs-600; + } + } +} + +.button { + cursor: pointer; + border: 0; + text-transform: uppercase; + font-weight: $fw-700; + color: $color-neutral-100; + background-color: $color-primary-400; + padding: 1em 1.5em; + + justify-self: center; + + .inverted & { + color: $color-primary-400; + background-color: $color-neutral-100; + } + + &:hover, + &:focus { + color: $color-neutral-100; + background-color: rgb($color-neutral-900, 0.7); + } +} diff --git a/projects/01-pricing-tiers/hosting-plans.jpg b/projects/01-pricing-tiers/hosting-plans.jpg new file mode 100644 index 0000000..4fad73c Binary files /dev/null and b/projects/01-pricing-tiers/hosting-plans.jpg differ diff --git a/projects/02-tshirts/00-blank-starter/.gitignore b/projects/02-tshirts/00-blank-starter/.gitignore new file mode 100644 index 0000000..18d5e87 --- /dev/null +++ b/projects/02-tshirts/00-blank-starter/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +public/ \ No newline at end of file diff --git a/projects/02-tshirts/00-blank-starter/package.json b/projects/02-tshirts/00-blank-starter/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/02-tshirts/00-blank-starter/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/02-tshirts/00-blank-starter/src/assets/feline.jpg b/projects/02-tshirts/00-blank-starter/src/assets/feline.jpg new file mode 100644 index 0000000..6f30690 Binary files /dev/null and b/projects/02-tshirts/00-blank-starter/src/assets/feline.jpg differ diff --git a/projects/02-tshirts/00-blank-starter/src/assets/m-jacket.jpg b/projects/02-tshirts/00-blank-starter/src/assets/m-jacket.jpg new file mode 100644 index 0000000..26a4bcc Binary files /dev/null and b/projects/02-tshirts/00-blank-starter/src/assets/m-jacket.jpg differ diff --git a/projects/02-tshirts/00-blank-starter/src/assets/outcast.jpg b/projects/02-tshirts/00-blank-starter/src/assets/outcast.jpg new file mode 100644 index 0000000..5c723f3 Binary files /dev/null and b/projects/02-tshirts/00-blank-starter/src/assets/outcast.jpg differ diff --git a/projects/02-tshirts/00-blank-starter/src/assets/peace.jpg b/projects/02-tshirts/00-blank-starter/src/assets/peace.jpg new file mode 100644 index 0000000..de44ffb Binary files /dev/null and b/projects/02-tshirts/00-blank-starter/src/assets/peace.jpg differ diff --git a/projects/02-tshirts/00-blank-starter/src/assets/plus-icon.svg b/projects/02-tshirts/00-blank-starter/src/assets/plus-icon.svg new file mode 100644 index 0000000..f1b7771 --- /dev/null +++ b/projects/02-tshirts/00-blank-starter/src/assets/plus-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/projects/02-tshirts/00-blank-starter/src/assets/shoes.jpg b/projects/02-tshirts/00-blank-starter/src/assets/shoes.jpg new file mode 100644 index 0000000..8a39734 Binary files /dev/null and b/projects/02-tshirts/00-blank-starter/src/assets/shoes.jpg differ diff --git a/projects/02-tshirts/00-blank-starter/src/assets/w-jacket.jpg b/projects/02-tshirts/00-blank-starter/src/assets/w-jacket.jpg new file mode 100644 index 0000000..262fe64 Binary files /dev/null and b/projects/02-tshirts/00-blank-starter/src/assets/w-jacket.jpg differ diff --git a/projects/02-tshirts/00-blank-starter/src/index.html b/projects/02-tshirts/00-blank-starter/src/index.html new file mode 100644 index 0000000..8339692 --- /dev/null +++ b/projects/02-tshirts/00-blank-starter/src/index.html @@ -0,0 +1,121 @@ + + + + + + + T-shirts + + + + +
+
+

T-Shirts

+

Browse our selection of high-quality t-shirts

+
+
+ +
+
+
+ +
+ white t-shirt with graphic of a man in black and white, and an orange box, with white text reading Out Cast inside it +
+
+

Men's shirts

+

Out Cast

+
+
+

$23.99

+
+
+ +
+ +
+ black t-shirt with a large white graphic of the skeleton of a hand, making the peace symbol +
+
+

Men's shirts

+

Peace

+
+
+

$23.99

+
+
+ +
+ +
+ white t-shirt with the word feline written in a black cursive font +
+
+

Woman's shirts

+

Feline

+
+
+

$23.99

+
+
+ +
+ +
+ +

Browser other categories

+ + +
+
+ + + + \ No newline at end of file diff --git a/projects/02-tshirts/00-blank-starter/src/scss/style.scss b/projects/02-tshirts/00-blank-starter/src/scss/style.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/02-tshirts/01-the-html/.gitignore b/projects/02-tshirts/01-the-html/.gitignore new file mode 100644 index 0000000..18d5e87 --- /dev/null +++ b/projects/02-tshirts/01-the-html/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +public/ \ No newline at end of file diff --git a/projects/02-tshirts/01-the-html/package.json b/projects/02-tshirts/01-the-html/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/02-tshirts/01-the-html/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/02-tshirts/01-the-html/src/assets/feline.jpg b/projects/02-tshirts/01-the-html/src/assets/feline.jpg new file mode 100644 index 0000000..6f30690 Binary files /dev/null and b/projects/02-tshirts/01-the-html/src/assets/feline.jpg differ diff --git a/projects/02-tshirts/01-the-html/src/assets/m-jacket.jpg b/projects/02-tshirts/01-the-html/src/assets/m-jacket.jpg new file mode 100644 index 0000000..26a4bcc Binary files /dev/null and b/projects/02-tshirts/01-the-html/src/assets/m-jacket.jpg differ diff --git a/projects/02-tshirts/01-the-html/src/assets/outcast.jpg b/projects/02-tshirts/01-the-html/src/assets/outcast.jpg new file mode 100644 index 0000000..5c723f3 Binary files /dev/null and b/projects/02-tshirts/01-the-html/src/assets/outcast.jpg differ diff --git a/projects/02-tshirts/01-the-html/src/assets/peace.jpg b/projects/02-tshirts/01-the-html/src/assets/peace.jpg new file mode 100644 index 0000000..de44ffb Binary files /dev/null and b/projects/02-tshirts/01-the-html/src/assets/peace.jpg differ diff --git a/projects/02-tshirts/01-the-html/src/assets/plus-icon.svg b/projects/02-tshirts/01-the-html/src/assets/plus-icon.svg new file mode 100644 index 0000000..f1b7771 --- /dev/null +++ b/projects/02-tshirts/01-the-html/src/assets/plus-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/projects/02-tshirts/01-the-html/src/assets/shoes.jpg b/projects/02-tshirts/01-the-html/src/assets/shoes.jpg new file mode 100644 index 0000000..8a39734 Binary files /dev/null and b/projects/02-tshirts/01-the-html/src/assets/shoes.jpg differ diff --git a/projects/02-tshirts/01-the-html/src/assets/w-jacket.jpg b/projects/02-tshirts/01-the-html/src/assets/w-jacket.jpg new file mode 100644 index 0000000..262fe64 Binary files /dev/null and b/projects/02-tshirts/01-the-html/src/assets/w-jacket.jpg differ diff --git a/projects/02-tshirts/01-the-html/src/index.html b/projects/02-tshirts/01-the-html/src/index.html new file mode 100644 index 0000000..8339692 --- /dev/null +++ b/projects/02-tshirts/01-the-html/src/index.html @@ -0,0 +1,121 @@ + + + + + + + T-shirts + + + + +
+
+

T-Shirts

+

Browse our selection of high-quality t-shirts

+
+
+ +
+
+
+ +
+ white t-shirt with graphic of a man in black and white, and an orange box, with white text reading Out Cast inside it +
+
+

Men's shirts

+

Out Cast

+
+
+

$23.99

+
+
+ +
+ +
+ black t-shirt with a large white graphic of the skeleton of a hand, making the peace symbol +
+
+

Men's shirts

+

Peace

+
+
+

$23.99

+
+
+ +
+ +
+ white t-shirt with the word feline written in a black cursive font +
+
+

Woman's shirts

+

Feline

+
+
+

$23.99

+
+
+ +
+ +
+ +

Browser other categories

+ + +
+
+ + + + \ No newline at end of file diff --git a/projects/02-tshirts/01-the-html/src/scss/style.scss b/projects/02-tshirts/01-the-html/src/scss/style.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/02-tshirts/02-abstracts/.gitignore b/projects/02-tshirts/02-abstracts/.gitignore new file mode 100644 index 0000000..18d5e87 --- /dev/null +++ b/projects/02-tshirts/02-abstracts/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +public/ \ No newline at end of file diff --git a/projects/02-tshirts/02-abstracts/package.json b/projects/02-tshirts/02-abstracts/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/02-tshirts/02-abstracts/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/02-tshirts/02-abstracts/src/assets/feline.jpg b/projects/02-tshirts/02-abstracts/src/assets/feline.jpg new file mode 100644 index 0000000..6f30690 Binary files /dev/null and b/projects/02-tshirts/02-abstracts/src/assets/feline.jpg differ diff --git a/projects/02-tshirts/02-abstracts/src/assets/m-jacket.jpg b/projects/02-tshirts/02-abstracts/src/assets/m-jacket.jpg new file mode 100644 index 0000000..26a4bcc Binary files /dev/null and b/projects/02-tshirts/02-abstracts/src/assets/m-jacket.jpg differ diff --git a/projects/02-tshirts/02-abstracts/src/assets/outcast.jpg b/projects/02-tshirts/02-abstracts/src/assets/outcast.jpg new file mode 100644 index 0000000..5c723f3 Binary files /dev/null and b/projects/02-tshirts/02-abstracts/src/assets/outcast.jpg differ diff --git a/projects/02-tshirts/02-abstracts/src/assets/peace.jpg b/projects/02-tshirts/02-abstracts/src/assets/peace.jpg new file mode 100644 index 0000000..de44ffb Binary files /dev/null and b/projects/02-tshirts/02-abstracts/src/assets/peace.jpg differ diff --git a/projects/02-tshirts/02-abstracts/src/assets/plus-icon.svg b/projects/02-tshirts/02-abstracts/src/assets/plus-icon.svg new file mode 100644 index 0000000..f1b7771 --- /dev/null +++ b/projects/02-tshirts/02-abstracts/src/assets/plus-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/projects/02-tshirts/02-abstracts/src/assets/shoes.jpg b/projects/02-tshirts/02-abstracts/src/assets/shoes.jpg new file mode 100644 index 0000000..8a39734 Binary files /dev/null and b/projects/02-tshirts/02-abstracts/src/assets/shoes.jpg differ diff --git a/projects/02-tshirts/02-abstracts/src/assets/w-jacket.jpg b/projects/02-tshirts/02-abstracts/src/assets/w-jacket.jpg new file mode 100644 index 0000000..262fe64 Binary files /dev/null and b/projects/02-tshirts/02-abstracts/src/assets/w-jacket.jpg differ diff --git a/projects/02-tshirts/02-abstracts/src/index.html b/projects/02-tshirts/02-abstracts/src/index.html new file mode 100644 index 0000000..8339692 --- /dev/null +++ b/projects/02-tshirts/02-abstracts/src/index.html @@ -0,0 +1,121 @@ + + + + + + + T-shirts + + + + +
+
+

T-Shirts

+

Browse our selection of high-quality t-shirts

+
+
+ +
+
+
+ +
+ white t-shirt with graphic of a man in black and white, and an orange box, with white text reading Out Cast inside it +
+
+

Men's shirts

+

Out Cast

+
+
+

$23.99

+
+
+ +
+ +
+ black t-shirt with a large white graphic of the skeleton of a hand, making the peace symbol +
+
+

Men's shirts

+

Peace

+
+
+

$23.99

+
+
+ +
+ +
+ white t-shirt with the word feline written in a black cursive font +
+
+

Woman's shirts

+

Feline

+
+
+

$23.99

+
+
+ +
+ +
+ +

Browser other categories

+ + +
+
+ + + + \ No newline at end of file diff --git a/projects/02-tshirts/02-abstracts/src/scss/style.scss b/projects/02-tshirts/02-abstracts/src/scss/style.scss new file mode 100644 index 0000000..5379d5f --- /dev/null +++ b/projects/02-tshirts/02-abstracts/src/scss/style.scss @@ -0,0 +1,42 @@ +// variables + +$font-family: "Roboto", sans-serif; + +$fw-400: 400; +$fw-700: 700; +$fw-900: 900; + +$fs-400: 1.125rem; +$fs-500: 1.25rem; +$fs-600: 2rem; +$fs-700: 3rem; + +$red-400: hsla(357, 100%, 68%, 1); +$red-500: hsl(357, 74%, 40%); +$blue-800: hsla(216, 71%, 16%, 1); +$neutral-100: hsl(0 0% 100%); + +$size-8: 0.5rem; +$size-16: 1rem; +$size-32: 2rem; +$size-36: 3rem; + +// Placeholders + +%shadow { + box-shadow: 0.25rem 0.25rem 1rem rgb(0 0 0 / 0.15); +} + +// Mixins + +@mixin interative-scale($color, $bg, $scale: 1.05) { + transform: scale(1); + transition: transform 350ms ease; + + &:hover, + &:focus { + transform: scale($scale); + color: $color; + background-color: $bg; + } +} diff --git a/projects/02-tshirts/03-base/.gitignore b/projects/02-tshirts/03-base/.gitignore new file mode 100644 index 0000000..18d5e87 --- /dev/null +++ b/projects/02-tshirts/03-base/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +public/ \ No newline at end of file diff --git a/projects/02-tshirts/03-base/package.json b/projects/02-tshirts/03-base/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/02-tshirts/03-base/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/02-tshirts/03-base/src/assets/feline.jpg b/projects/02-tshirts/03-base/src/assets/feline.jpg new file mode 100644 index 0000000..6f30690 Binary files /dev/null and b/projects/02-tshirts/03-base/src/assets/feline.jpg differ diff --git a/projects/02-tshirts/03-base/src/assets/m-jacket.jpg b/projects/02-tshirts/03-base/src/assets/m-jacket.jpg new file mode 100644 index 0000000..26a4bcc Binary files /dev/null and b/projects/02-tshirts/03-base/src/assets/m-jacket.jpg differ diff --git a/projects/02-tshirts/03-base/src/assets/outcast.jpg b/projects/02-tshirts/03-base/src/assets/outcast.jpg new file mode 100644 index 0000000..5c723f3 Binary files /dev/null and b/projects/02-tshirts/03-base/src/assets/outcast.jpg differ diff --git a/projects/02-tshirts/03-base/src/assets/peace.jpg b/projects/02-tshirts/03-base/src/assets/peace.jpg new file mode 100644 index 0000000..de44ffb Binary files /dev/null and b/projects/02-tshirts/03-base/src/assets/peace.jpg differ diff --git a/projects/02-tshirts/03-base/src/assets/plus-icon.svg b/projects/02-tshirts/03-base/src/assets/plus-icon.svg new file mode 100644 index 0000000..f1b7771 --- /dev/null +++ b/projects/02-tshirts/03-base/src/assets/plus-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/projects/02-tshirts/03-base/src/assets/shoes.jpg b/projects/02-tshirts/03-base/src/assets/shoes.jpg new file mode 100644 index 0000000..8a39734 Binary files /dev/null and b/projects/02-tshirts/03-base/src/assets/shoes.jpg differ diff --git a/projects/02-tshirts/03-base/src/assets/w-jacket.jpg b/projects/02-tshirts/03-base/src/assets/w-jacket.jpg new file mode 100644 index 0000000..262fe64 Binary files /dev/null and b/projects/02-tshirts/03-base/src/assets/w-jacket.jpg differ diff --git a/projects/02-tshirts/03-base/src/index.html b/projects/02-tshirts/03-base/src/index.html new file mode 100644 index 0000000..fd2b59e --- /dev/null +++ b/projects/02-tshirts/03-base/src/index.html @@ -0,0 +1,124 @@ + + + + + + + T-shirts + + + + + + + +
+
+

T-Shirts

+

Browse our selection of high-quality t-shirts

+
+
+ +
+
+
+ +
+ white t-shirt with graphic of a man in black and white, and an orange box, with white text reading Out Cast inside it +
+
+

Men's shirts

+

Out Cast

+
+
+

$23.99

+
+
+ +
+ +
+ black t-shirt with a large white graphic of the skeleton of a hand, making the peace symbol +
+
+

Men's shirts

+

Peace

+
+
+

$23.99

+
+
+ +
+ +
+ white t-shirt with the word feline written in a black cursive font +
+
+

Woman's shirts

+

Feline

+
+
+

$23.99

+
+
+ +
+ +
+ +

Browser other categories

+ + +
+
+ + + + \ No newline at end of file diff --git a/projects/02-tshirts/03-base/src/sass/style.scss b/projects/02-tshirts/03-base/src/sass/style.scss new file mode 100644 index 0000000..f92cf9d --- /dev/null +++ b/projects/02-tshirts/03-base/src/sass/style.scss @@ -0,0 +1,118 @@ +// variables + +$font-family: "Roboto", sans-serif; + +$fw-400: 400; +$fw-700: 700; +$fw-900: 900; + +$fs-400: 1.125rem; +$fs-500: 1.25rem; +$fs-600: 2rem; +$fs-700: 3rem; + +$red-400: hsla(357, 100%, 68%, 1); +$red-500: hsl(357, 74%, 40%); +$blue-800: hsla(216, 71%, 16%, 1); +$neutral-100: hsl(0 0% 100%); + +$size-8: 0.5rem; +$size-16: 1rem; +$size-32: 2rem; +$size-36: 3rem; + +// Placeholders + +%shadow { + box-shadow: 0.25rem 0.25rem 1rem rgb(0 0 0 / 0.15); +} + +// Mixins + +@mixin interative-scale($color, $bg, $scale: 1.05) { + transform: scale(1); + transition: transform 350ms ease; + + &:hover, + &:focus { + transform: scale($scale); + color: $color; + background-color: $bg; + } +} + +// reset +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; + padding: 0; + font: inherit; +} + +img { + display: block; + max-width: 100%; +} + +body { + font-family: $font-family; + font-size: $fs-400; + color: $blue-800; + + // for demo + margin: $size-36 0; +} + +// composition + +.container { + width: min(58rem, 100% - 2rem); + margin-inline: auto; +} + +.even-columns { + display: grid; + grid-auto-flow: column; + grid-auto-columns: 1fr; + gap: var(--gap, $size-16); +} + +// Utilities + +.margin-block-xl { + margin-block: $size-36; +} + +.fw-bold { + font-weight: 700; +} +.fw-black { + font-weight: 900; +} + +.text-center { + text-align: center; +} +.text-accent { + color: $red-400; +} + +.page-title { + font-size: $fs-700; + font-weight: 900; +} + +.visually-hidden { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; +} diff --git a/projects/02-tshirts/04-the-product-card/.gitignore b/projects/02-tshirts/04-the-product-card/.gitignore new file mode 100644 index 0000000..18d5e87 --- /dev/null +++ b/projects/02-tshirts/04-the-product-card/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +public/ \ No newline at end of file diff --git a/projects/02-tshirts/04-the-product-card/package.json b/projects/02-tshirts/04-the-product-card/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/02-tshirts/04-the-product-card/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/02-tshirts/04-the-product-card/src/assets/feline.jpg b/projects/02-tshirts/04-the-product-card/src/assets/feline.jpg new file mode 100644 index 0000000..6f30690 Binary files /dev/null and b/projects/02-tshirts/04-the-product-card/src/assets/feline.jpg differ diff --git a/projects/02-tshirts/04-the-product-card/src/assets/m-jacket.jpg b/projects/02-tshirts/04-the-product-card/src/assets/m-jacket.jpg new file mode 100644 index 0000000..26a4bcc Binary files /dev/null and b/projects/02-tshirts/04-the-product-card/src/assets/m-jacket.jpg differ diff --git a/projects/02-tshirts/04-the-product-card/src/assets/outcast.jpg b/projects/02-tshirts/04-the-product-card/src/assets/outcast.jpg new file mode 100644 index 0000000..5c723f3 Binary files /dev/null and b/projects/02-tshirts/04-the-product-card/src/assets/outcast.jpg differ diff --git a/projects/02-tshirts/04-the-product-card/src/assets/peace.jpg b/projects/02-tshirts/04-the-product-card/src/assets/peace.jpg new file mode 100644 index 0000000..de44ffb Binary files /dev/null and b/projects/02-tshirts/04-the-product-card/src/assets/peace.jpg differ diff --git a/projects/02-tshirts/04-the-product-card/src/assets/plus-icon.svg b/projects/02-tshirts/04-the-product-card/src/assets/plus-icon.svg new file mode 100644 index 0000000..f1b7771 --- /dev/null +++ b/projects/02-tshirts/04-the-product-card/src/assets/plus-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/projects/02-tshirts/04-the-product-card/src/assets/shoes.jpg b/projects/02-tshirts/04-the-product-card/src/assets/shoes.jpg new file mode 100644 index 0000000..8a39734 Binary files /dev/null and b/projects/02-tshirts/04-the-product-card/src/assets/shoes.jpg differ diff --git a/projects/02-tshirts/04-the-product-card/src/assets/w-jacket.jpg b/projects/02-tshirts/04-the-product-card/src/assets/w-jacket.jpg new file mode 100644 index 0000000..262fe64 Binary files /dev/null and b/projects/02-tshirts/04-the-product-card/src/assets/w-jacket.jpg differ diff --git a/projects/02-tshirts/04-the-product-card/src/index.html b/projects/02-tshirts/04-the-product-card/src/index.html new file mode 100644 index 0000000..2e68995 --- /dev/null +++ b/projects/02-tshirts/04-the-product-card/src/index.html @@ -0,0 +1,124 @@ + + + + + + + T-shirts + + + + + + + +
+
+

T-Shirts

+

Browse our selection of high-quality t-shirts

+
+
+ +
+
+
+ +
+ white t-shirt with graphic of a man in black and white, and an orange box, with white text reading Out Cast inside it +
+
+

Men's shirts

+

Out Cast

+
+
+

$23.99

+
+ +
+
+ +
+ black t-shirt with a large white graphic of the skeleton of a hand, making the peace symbol +
+
+

Men's shirts

+

Peace

+
+
+

$23.99

+
+ +
+
+ +
+ white t-shirt with the word feline written in a black cursive font +
+
+

Woman's shirts

+

Feline

+
+
+

$23.99

+
+ +
+
+ +
+ +

Browser other categories

+ + +
+
+ + + + \ No newline at end of file diff --git a/projects/02-tshirts/04-the-product-card/src/sass/style.scss b/projects/02-tshirts/04-the-product-card/src/sass/style.scss new file mode 100644 index 0000000..59679cb --- /dev/null +++ b/projects/02-tshirts/04-the-product-card/src/sass/style.scss @@ -0,0 +1,160 @@ +// variables + +$font-family: "Roboto", sans-serif; + +$fw-400: 400; +$fw-700: 700; +$fw-900: 900; + +$fs-400: 1.125rem; +$fs-500: 1.25rem; +$fs-600: 2rem; +$fs-700: 3rem; + +$red-400: hsla(357, 100%, 68%, 1); +$red-500: hsl(357, 74%, 40%); +$blue-800: hsla(216, 71%, 16%, 1); +$neutral-100: hsl(0 0% 100%); + +$size-8: 0.5rem; +$size-16: 1rem; +$size-32: 2rem; +$size-36: 3rem; + +// Placeholders + +%shadow { + box-shadow: 0.25rem 0.25rem 1rem rgb(0 0 0 / 0.15); +} + +// Mixins + +@mixin interactive-scale($color, $bg, $scale: 1.05) { + scale: 1; + transition: scale 350ms ease; + + &:hover, + &:focus { + scale: $scale; + color: $color; + background-color: $bg; + } +} + +// reset +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; + padding: 0; + font: inherit; +} + +img { + display: block; + max-width: 100%; +} + +body { + font-family: $font-family; + font-size: $fs-400; + color: $blue-800; + + // for demo + margin: $size-36 0; +} + +// composition + +.container { + width: min(58rem, 100% - 2rem); + margin-inline: auto; +} + +.even-columns { + display: grid; + grid-auto-flow: column; + grid-auto-columns: 1fr; + gap: var(--gap, $size-16); +} + +// Utilities + +.margin-block-xl { + margin-block: $size-36; +} + +.fw-bold { + font-weight: 700; +} +.fw-black { + font-weight: 900; +} + +.text-center { + text-align: center; +} +.text-accent { + color: $red-400; +} + +.page-title { + font-size: $fs-700; + font-weight: 900; +} + +.visually-hidden { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; +} + +// block + +.card { + $parent: &; + border-radius: $size-32; + overflow: hidden; + background-color: $neutral-100; + @extend %shadow; + + &[data-type="product"] { + h2 { + font-size: $fs-600; + font-weight: 900; + text-transform: uppercase; + } + #{$parent}__content { + position: relative; + padding: $size-32 $size-16 $size-16; + display: flex; + align-items: end; + gap: $size-16; + justify-content: space-between; + } + } + + &[data-type="link-with-image"] { + } +} + +.button { + display: inline-block; + border: 0; + text-decoration: none; + cursor: pointer; + padding: $size-16; + background: $red-400; + color: $neutral-100; + border-radius: 100vw; + @extend %shadow; + @include interactive-scale($neutral-100, $red-500); +} diff --git a/projects/02-tshirts/05-button-position/.gitignore b/projects/02-tshirts/05-button-position/.gitignore new file mode 100644 index 0000000..18d5e87 --- /dev/null +++ b/projects/02-tshirts/05-button-position/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +public/ \ No newline at end of file diff --git a/projects/02-tshirts/05-button-position/package.json b/projects/02-tshirts/05-button-position/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/02-tshirts/05-button-position/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/02-tshirts/05-button-position/src/assets/feline.jpg b/projects/02-tshirts/05-button-position/src/assets/feline.jpg new file mode 100644 index 0000000..6f30690 Binary files /dev/null and b/projects/02-tshirts/05-button-position/src/assets/feline.jpg differ diff --git a/projects/02-tshirts/05-button-position/src/assets/m-jacket.jpg b/projects/02-tshirts/05-button-position/src/assets/m-jacket.jpg new file mode 100644 index 0000000..26a4bcc Binary files /dev/null and b/projects/02-tshirts/05-button-position/src/assets/m-jacket.jpg differ diff --git a/projects/02-tshirts/05-button-position/src/assets/outcast.jpg b/projects/02-tshirts/05-button-position/src/assets/outcast.jpg new file mode 100644 index 0000000..5c723f3 Binary files /dev/null and b/projects/02-tshirts/05-button-position/src/assets/outcast.jpg differ diff --git a/projects/02-tshirts/05-button-position/src/assets/peace.jpg b/projects/02-tshirts/05-button-position/src/assets/peace.jpg new file mode 100644 index 0000000..de44ffb Binary files /dev/null and b/projects/02-tshirts/05-button-position/src/assets/peace.jpg differ diff --git a/projects/02-tshirts/05-button-position/src/assets/plus-icon.svg b/projects/02-tshirts/05-button-position/src/assets/plus-icon.svg new file mode 100644 index 0000000..f1b7771 --- /dev/null +++ b/projects/02-tshirts/05-button-position/src/assets/plus-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/projects/02-tshirts/05-button-position/src/assets/shoes.jpg b/projects/02-tshirts/05-button-position/src/assets/shoes.jpg new file mode 100644 index 0000000..8a39734 Binary files /dev/null and b/projects/02-tshirts/05-button-position/src/assets/shoes.jpg differ diff --git a/projects/02-tshirts/05-button-position/src/assets/w-jacket.jpg b/projects/02-tshirts/05-button-position/src/assets/w-jacket.jpg new file mode 100644 index 0000000..262fe64 Binary files /dev/null and b/projects/02-tshirts/05-button-position/src/assets/w-jacket.jpg differ diff --git a/projects/02-tshirts/05-button-position/src/index.html b/projects/02-tshirts/05-button-position/src/index.html new file mode 100644 index 0000000..81e9e9d --- /dev/null +++ b/projects/02-tshirts/05-button-position/src/index.html @@ -0,0 +1,124 @@ + + + + + + + T-shirts + + + + + + + +
+
+

T-Shirts

+

Browse our selection of high-quality t-shirts

+
+
+ +
+
+
+ +
+ white t-shirt with graphic of a man in black and white, and an orange box, with white text reading Out Cast inside it +
+
+

Men's shirts

+

Out Cast

+
+
+

$23.99

+
+
+ +
+ +
+ black t-shirt with a large white graphic of the skeleton of a hand, making the peace symbol +
+
+

Men's shirts

+

Peace

+
+
+

$23.99

+
+
+ +
+ +
+ white t-shirt with the word feline written in a black cursive font +
+
+

Woman's shirts

+

Feline

+
+
+

$23.99

+
+
+ +
+ +
+ +

Browser other categories

+ + +
+
+ + + + \ No newline at end of file diff --git a/projects/02-tshirts/05-button-position/src/sass/style.scss b/projects/02-tshirts/05-button-position/src/sass/style.scss new file mode 100644 index 0000000..4bdc7cf --- /dev/null +++ b/projects/02-tshirts/05-button-position/src/sass/style.scss @@ -0,0 +1,166 @@ +// variables + +$font-family: "Roboto", sans-serif; + +$fw-400: 400; +$fw-700: 700; +$fw-900: 900; + +$fs-400: 1.125rem; +$fs-500: 1.25rem; +$fs-600: 2rem; +$fs-700: 3rem; + +$red-400: hsla(357, 100%, 68%, 1); +$red-500: hsl(357, 74%, 40%); +$blue-800: hsla(216, 71%, 16%, 1); +$neutral-100: hsl(0 0% 100%); + +$size-8: 0.5rem; +$size-16: 1rem; +$size-32: 2rem; +$size-36: 3rem; + +// Placeholders + +%shadow { + box-shadow: 0.25rem 0.25rem 1rem rgb(0 0 0 / 0.15); +} + +// Mixins + +@mixin interactive-scale($color, $bg, $scale: 1.05) { + transform: scale(1); + transition: transform 350ms ease; + + &:hover, + &:focus { + transform: scale($scale); + color: $color; + background-color: $bg; + } +} + +// reset +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; + padding: 0; + font: inherit; +} + +img { + display: block; + max-width: 100%; +} + +body { + font-family: $font-family; + font-size: $fs-400; + color: $blue-800; + + // for demo + margin: $size-36 0; +} + +// composition + +.container { + width: min(58rem, 100% - 2rem); + margin-inline: auto; +} + +.even-columns { + display: grid; + grid-auto-flow: column; + grid-auto-columns: 1fr; + gap: var(--gap, $size-16); +} + +// Utilities + +.margin-block-xl { + margin-block: $size-36; +} + +.fw-bold { + font-weight: 700; +} +.fw-black { + font-weight: 900; +} + +.text-center { + text-align: center; +} +.text-accent { + color: $red-400; +} + +.page-title { + font-size: $fs-700; + font-weight: 900; +} + +.visually-hidden { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; +} + +// block + +.card { + $parent: &; + border-radius: $size-32; + overflow: hidden; + background-color: $neutral-100; + @extend %shadow; + + &[data-type="product"] { + h2 { + font-size: $fs-600; + font-weight: 900; + text-transform: uppercase; + } + #{$parent}__content { + padding: $size-32 $size-16 $size-16; + display: flex; + align-items: end; + gap: $size-16; + justify-content: space-between; + } + + .button { + position: absolute; + top: 0; + right: $size-16; + transform: translateY(-50%); + } + } + + &[data-type="link-with-image"] { + } +} + +.button { + display: inline-block; + border: 0; + text-decoration: none; + cursor: pointer; + padding: $size-16; + background: $red-400; + color: $neutral-100; + border-radius: 100vw; + @extend %shadow; + @include interactive-scale($neutral-100, $red-500); +} diff --git a/projects/02-tshirts/06-the-categories-card/.gitignore b/projects/02-tshirts/06-the-categories-card/.gitignore new file mode 100644 index 0000000..18d5e87 --- /dev/null +++ b/projects/02-tshirts/06-the-categories-card/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +public/ \ No newline at end of file diff --git a/projects/02-tshirts/06-the-categories-card/package.json b/projects/02-tshirts/06-the-categories-card/package.json new file mode 100644 index 0000000..ecb966f --- /dev/null +++ b/projects/02-tshirts/06-the-categories-card/package.json @@ -0,0 +1,31 @@ +{ + "name": "project-name", + "version": "1.0.0", + "description": "Project description", + "main": "public/index.html", + "author": "author name", + "scripts": { + "build:sass": "sass --no-source-map src/sass:public/css", + "copy:assets": "copyfiles -u 1 ./src/assets/**/* public", + "copy:html": "copyfiles -u 1 ./src/*.html public", + "copy": "npm-run-all --parallel copy:*", + "watch:assets": "onchange 'src/assest/**/*' -- npm run copy:assets", + "watch:html": "onchange \"src/*.html\" -- npm run copy:html", + "watch:sass": "sass --watch src/sass:public/css", + "watch": "npm-run-all --parallel watch:*", + "serve": "browser-sync start --server public --files public", + "start": "npm-run-all copy --parallel watch serve", + "build": "npm-run-all copy:html build:*", + "postbuild": "postcss public/css/*.css -u autoprefixer cssnano -r --no-map" + }, + "dependencies": { + "autoprefixer": "^10.4.2", + "browser-sync": "^2.27.7", + "copyfiles": "^2.4.1", + "cssnano": "^5.0.17", + "npm-run-all": "^4.1.5", + "onchange": "^7.1.0", + "postcss-cli": "^9.1.0", + "sass": "^1.49.8" + } +} diff --git a/projects/02-tshirts/06-the-categories-card/src/assets/feline.jpg b/projects/02-tshirts/06-the-categories-card/src/assets/feline.jpg new file mode 100644 index 0000000..6f30690 Binary files /dev/null and b/projects/02-tshirts/06-the-categories-card/src/assets/feline.jpg differ diff --git a/projects/02-tshirts/06-the-categories-card/src/assets/m-jacket.jpg b/projects/02-tshirts/06-the-categories-card/src/assets/m-jacket.jpg new file mode 100644 index 0000000..26a4bcc Binary files /dev/null and b/projects/02-tshirts/06-the-categories-card/src/assets/m-jacket.jpg differ diff --git a/projects/02-tshirts/06-the-categories-card/src/assets/outcast.jpg b/projects/02-tshirts/06-the-categories-card/src/assets/outcast.jpg new file mode 100644 index 0000000..5c723f3 Binary files /dev/null and b/projects/02-tshirts/06-the-categories-card/src/assets/outcast.jpg differ diff --git a/projects/02-tshirts/06-the-categories-card/src/assets/peace.jpg b/projects/02-tshirts/06-the-categories-card/src/assets/peace.jpg new file mode 100644 index 0000000..de44ffb Binary files /dev/null and b/projects/02-tshirts/06-the-categories-card/src/assets/peace.jpg differ diff --git a/projects/02-tshirts/06-the-categories-card/src/assets/plus-icon.svg b/projects/02-tshirts/06-the-categories-card/src/assets/plus-icon.svg new file mode 100644 index 0000000..f1b7771 --- /dev/null +++ b/projects/02-tshirts/06-the-categories-card/src/assets/plus-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/projects/02-tshirts/06-the-categories-card/src/assets/shoes.jpg b/projects/02-tshirts/06-the-categories-card/src/assets/shoes.jpg new file mode 100644 index 0000000..8a39734 Binary files /dev/null and b/projects/02-tshirts/06-the-categories-card/src/assets/shoes.jpg differ diff --git a/projects/02-tshirts/06-the-categories-card/src/assets/w-jacket.jpg b/projects/02-tshirts/06-the-categories-card/src/assets/w-jacket.jpg new file mode 100644 index 0000000..262fe64 Binary files /dev/null and b/projects/02-tshirts/06-the-categories-card/src/assets/w-jacket.jpg differ diff --git a/projects/02-tshirts/06-the-categories-card/src/index.html b/projects/02-tshirts/06-the-categories-card/src/index.html new file mode 100644 index 0000000..1c29a33 --- /dev/null +++ b/projects/02-tshirts/06-the-categories-card/src/index.html @@ -0,0 +1,124 @@ + + + + + + + T-shirts + + + + + + + +
+
+

T-Shirts

+

Browse our selection of high-quality t-shirts

+
+
+ +
+
+
+ +
+ white t-shirt with graphic of a man in black and white, and an orange box, with white text reading Out Cast inside it +
+
+

Men's shirts

+

Out Cast

+
+
+

$23.99

+
+ +
+
+ +
+ black t-shirt with a large white graphic of the skeleton of a hand, making the peace symbol +
+
+

Men's shirts

+

Peace

+
+
+

$23.99

+
+ +
+
+ +
+ white t-shirt with the word feline written in a black cursive font +
+
+

Woman's shirts

+

Feline

+
+
+

$23.99

+
+ +
+
+ +
+ +

Browser other categories

+ + +
+
+ + + + \ No newline at end of file diff --git a/projects/02-tshirts/06-the-categories-card/src/sass/style.scss b/projects/02-tshirts/06-the-categories-card/src/sass/style.scss new file mode 100644 index 0000000..e9a0df2 --- /dev/null +++ b/projects/02-tshirts/06-the-categories-card/src/sass/style.scss @@ -0,0 +1,183 @@ +// variables + +$font-family: "Roboto", sans-serif; + +$fw-400: 400; +$fw-700: 700; +$fw-900: 900; + +$fs-400: 1.125rem; +$fs-500: 1.25rem; +$fs-600: 2rem; +$fs-700: 3rem; + +$red-400: hsla(357, 100%, 68%, 1); +$red-500: hsl(357, 74%, 40%); +$blue-800: hsla(216, 71%, 16%, 1); +$neutral-100: hsl(0 0% 100%); + +$size-8: 0.5rem; +$size-12: 0.75rem; +$size-16: 1rem; +$size-32: 2rem; +$size-36: 3rem; + +// Placeholders + +%shadow { + box-shadow: 0.25rem 0.25rem 1rem rgb(0 0 0 / 0.15); +} + +// Mixins + +@mixin interactive-scale($color, $bg, $scale: 1.05) { + transform: scale(1); + transition: transform 350ms ease; + + &:hover, + &:focus { + transform: scale($scale); + color: $color; + background-color: $bg; + } +} + +// reset +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; + padding: 0; + font: inherit; +} + +img { + display: block; + max-width: 100%; +} + +body { + font-family: $font-family; + font-size: $fs-400; + color: $blue-800; + + // for demo + margin: $size-36 0; +} + +// composition + +.container { + width: min(58rem, 100% - 2rem); + margin-inline: auto; +} + +.even-columns { + display: grid; + grid-auto-flow: column; + grid-auto-columns: 1fr; + gap: var(--gap, $size-16); +} + +// Utilities + +.margin-block-xl { + margin-block: $size-36; +} + +.fw-bold { + font-weight: 700; +} +.fw-black { + font-weight: 900; +} + +.text-center { + text-align: center; +} +.text-accent { + color: $red-400; +} + +.page-title { + font-size: $fs-700; + font-weight: 900; +} + +.visually-hidden { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; +} + +// block + +.card { + $parent: &; + border-radius: $size-32; + overflow: hidden; + background-color: $neutral-100; + @extend %shadow; + + &[data-type="product"] { + h2 { + font-size: $fs-600; + font-weight: 900; + text-transform: uppercase; + } + #{$parent}__content { + position: relative; + padding: $size-32 $size-16 $size-16; + display: flex; + align-items: end; + gap: $size-16; + justify-content: space-between; + } + + .button { + position: absolute; + top: 0; + right: $size-16; + transform: translateY(-50%); + } + } + + &[data-type="link-with-image"] { + text-decoration: none; + color: $red-500; + + @include interactive-scale($neutral-100, $blue-800); + + #{$parent}__content { + padding: $size-16 $size-12; + } + + img { + height: 8.75rem; + width: 100%; + object-fit: cover; + object-position: top center; + } + } +} + +.button { + display: inline-block; + border: 0; + text-decoration: none; + cursor: pointer; + padding: $size-16; + background: $red-400; + color: $neutral-100; + border-radius: 100vw; + @extend %shadow; + @include interactive-scale($neutral-100, $red-500); +} diff --git a/projects/02-tshirts/design-and-assets/assets/feline.jpg b/projects/02-tshirts/design-and-assets/assets/feline.jpg new file mode 100644 index 0000000..6f30690 Binary files /dev/null and b/projects/02-tshirts/design-and-assets/assets/feline.jpg differ diff --git a/projects/02-tshirts/design-and-assets/assets/m-jacket.jpg b/projects/02-tshirts/design-and-assets/assets/m-jacket.jpg new file mode 100644 index 0000000..26a4bcc Binary files /dev/null and b/projects/02-tshirts/design-and-assets/assets/m-jacket.jpg differ diff --git a/projects/02-tshirts/design-and-assets/assets/outcast.jpg b/projects/02-tshirts/design-and-assets/assets/outcast.jpg new file mode 100644 index 0000000..5c723f3 Binary files /dev/null and b/projects/02-tshirts/design-and-assets/assets/outcast.jpg differ diff --git a/projects/02-tshirts/design-and-assets/assets/peace.jpg b/projects/02-tshirts/design-and-assets/assets/peace.jpg new file mode 100644 index 0000000..de44ffb Binary files /dev/null and b/projects/02-tshirts/design-and-assets/assets/peace.jpg differ diff --git a/projects/02-tshirts/design-and-assets/assets/plus-icon.svg b/projects/02-tshirts/design-and-assets/assets/plus-icon.svg new file mode 100644 index 0000000..f1b7771 --- /dev/null +++ b/projects/02-tshirts/design-and-assets/assets/plus-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/projects/02-tshirts/design-and-assets/assets/shoes.jpg b/projects/02-tshirts/design-and-assets/assets/shoes.jpg new file mode 100644 index 0000000..8a39734 Binary files /dev/null and b/projects/02-tshirts/design-and-assets/assets/shoes.jpg differ diff --git a/projects/02-tshirts/design-and-assets/assets/w-jacket.jpg b/projects/02-tshirts/design-and-assets/assets/w-jacket.jpg new file mode 100644 index 0000000..262fe64 Binary files /dev/null and b/projects/02-tshirts/design-and-assets/assets/w-jacket.jpg differ diff --git a/projects/02-tshirts/design-and-assets/design-info.md b/projects/02-tshirts/design-and-assets/design-info.md new file mode 100644 index 0000000..1e3608f --- /dev/null +++ b/projects/02-tshirts/design-and-assets/design-info.md @@ -0,0 +1,35 @@ +# Design info - t-shirt project + +## Typography + +### Fonts + +- Roboto + + - Regular / 400 + - Bold / 700 + - Black / 900 + +- Sizes + - 400: 1.125rem + - 500: 1.25rem + - 600: 2rem + - 700: 3rem + +### Colors + +- red-400: hsla(357, 100%, 68%, 1); +- red-500: hsl(357, 74%, 40%); +- blue-800: hsla(216, 71%, 16%, 1); +- neutral-100: hsl(0 0% 100%); + +### Sizes + +- size-8: .5rem +- size-16: 1rem +- size-32: 2rem +- size-36: 3rem + +### Shadows + +- .25rem .25rem 1rem rgb(0 0 0 / .15); diff --git a/projects/02-tshirts/design-and-assets/spacing.jpg b/projects/02-tshirts/design-and-assets/spacing.jpg new file mode 100644 index 0000000..c84149e Binary files /dev/null and b/projects/02-tshirts/design-and-assets/spacing.jpg differ diff --git a/projects/02-tshirts/design-and-assets/the-design.jpg b/projects/02-tshirts/design-and-assets/the-design.jpg new file mode 100644 index 0000000..260383d Binary files /dev/null and b/projects/02-tshirts/design-and-assets/the-design.jpg differ