├── 07-modal ├── final │ ├── hero.jpeg │ ├── app.js │ ├── index.html │ ├── main.css │ └── normalize.css └── starter │ ├── hero.jpeg │ ├── app.js │ ├── index.html │ └── main.css ├── 09-menu ├── final │ ├── menu-item.jpeg │ ├── index.html │ ├── main.css │ └── normalize.css └── starter │ ├── menu-item.jpeg │ ├── index.html │ └── main.css ├── 05-navbar ├── final │ ├── app.js │ ├── index.html │ └── normalize.css └── starter │ ├── app.js │ ├── index.html │ ├── main.css │ └── normalize.css ├── 03-task-manager ├── starter │ ├── task.html │ ├── index.html │ └── main.css └── final │ ├── task.html │ └── index.html ├── 06-sidebar ├── final │ ├── app.js │ ├── index.html │ └── logo.svg └── starter │ ├── app.js │ ├── index.html │ ├── main.css │ └── logo.svg ├── 00-default-starter └── final │ ├── index.html │ └── main.css ├── 01-color-flipper ├── starter │ ├── hex.html │ ├── index.html │ └── main.css └── final │ ├── hex.html │ ├── index.html │ └── main.css ├── 02-counter ├── starter │ ├── index.html │ ├── main.css │ └── normalize.css └── final │ ├── index.html │ ├── main.css │ └── normalize.css ├── 10-grocery-bud ├── starter │ ├── index.html │ └── main.css └── final │ └── index.html ├── 08-questions ├── starter │ ├── index.html │ ├── app.js │ └── main.css └── final │ ├── app.js │ ├── index.html │ └── main.css └── 04-reviews ├── starter ├── index.html ├── main.css └── normalize.css └── final ├── index.html └── normalize.css /07-modal/final/hero.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/html-css-mini-projects/HEAD/07-modal/final/hero.jpeg -------------------------------------------------------------------------------- /07-modal/starter/hero.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/html-css-mini-projects/HEAD/07-modal/starter/hero.jpeg -------------------------------------------------------------------------------- /09-menu/final/menu-item.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/html-css-mini-projects/HEAD/09-menu/final/menu-item.jpeg -------------------------------------------------------------------------------- /09-menu/starter/menu-item.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-smilga/html-css-mini-projects/HEAD/09-menu/starter/menu-item.jpeg -------------------------------------------------------------------------------- /05-navbar/final/app.js: -------------------------------------------------------------------------------- 1 | const getElement = (selector) => { 2 | const el = document.querySelector(selector) 3 | if (el) return el 4 | throw new Error(`Please check your classes : ${selector} does not exist`) 5 | } 6 | 7 | const navToggle = getElement('.nav-toggle') 8 | const links = getElement('.links') 9 | 10 | navToggle.addEventListener('click', function () { 11 | links.classList.toggle('show-links') 12 | }) 13 | -------------------------------------------------------------------------------- /05-navbar/starter/app.js: -------------------------------------------------------------------------------- 1 | const getElement = (selector) => { 2 | const el = document.querySelector(selector) 3 | if (el) return el 4 | throw new Error(`Please check your classes : ${selector} does not exist`) 5 | } 6 | 7 | const navToggle = getElement('.nav-toggle') 8 | const links = getElement('.links') 9 | 10 | navToggle.addEventListener('click', function () { 11 | links.classList.toggle('show-links') 12 | }) 13 | -------------------------------------------------------------------------------- /07-modal/final/app.js: -------------------------------------------------------------------------------- 1 | const getElement = (selector) => { 2 | const el = document.querySelector(selector) 3 | if (el) return el 4 | throw new Error(`Please double check the ${selector}`) 5 | } 6 | 7 | const modalBtn = getElement('.modal-btn') 8 | const modal = getElement('.modal-overlay') 9 | const closeBtn = getElement('.close-btn') 10 | 11 | modalBtn.addEventListener('click', function () { 12 | modal.classList.add('open-modal') 13 | }) 14 | closeBtn.addEventListener('click', function () { 15 | modal.classList.remove('open-modal') 16 | }) 17 | -------------------------------------------------------------------------------- /07-modal/starter/app.js: -------------------------------------------------------------------------------- 1 | const getElement = (selector) => { 2 | const el = document.querySelector(selector) 3 | if (el) return el 4 | throw new Error(`Please double check the ${selector}`) 5 | } 6 | 7 | const modalBtn = getElement('.modal-btn') 8 | const modal = getElement('.modal-overlay') 9 | const closeBtn = getElement('.close-btn') 10 | 11 | modalBtn.addEventListener('click', function () { 12 | modal.classList.add('open-modal') 13 | }) 14 | closeBtn.addEventListener('click', function () { 15 | modal.classList.remove('open-modal') 16 | }) 17 | -------------------------------------------------------------------------------- /03-task-manager/starter/task.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Edit Task || Starter 13 | 14 | 15 |

edit task starter

16 | 17 | 18 | -------------------------------------------------------------------------------- /06-sidebar/final/app.js: -------------------------------------------------------------------------------- 1 | const getElement = (selector) => { 2 | const el = document.querySelector(selector) 3 | if (el) return el 4 | throw new Error(`Please check your classes : ${selector} does not exist`) 5 | } 6 | 7 | const sidebarToggle = getElement('.sidebar-toggle') 8 | const sidebar = getElement('.sidebar') 9 | const closeBtn = getElement('.close-btn') 10 | 11 | sidebarToggle.addEventListener('click', function () { 12 | sidebar.classList.toggle('show-sidebar') 13 | }) 14 | 15 | closeBtn.addEventListener('click', () => { 16 | sidebar.classList.remove('show-sidebar') 17 | }) 18 | -------------------------------------------------------------------------------- /06-sidebar/starter/app.js: -------------------------------------------------------------------------------- 1 | const getElement = (selector) => { 2 | const el = document.querySelector(selector) 3 | if (el) return el 4 | throw new Error(`Please check your classes : ${selector} does not exist`) 5 | } 6 | 7 | const sidebarToggle = getElement('.sidebar-toggle') 8 | const sidebar = getElement('.sidebar') 9 | const closeBtn = getElement('.close-btn') 10 | 11 | sidebarToggle.addEventListener('click', function () { 12 | sidebar.classList.toggle('show-sidebar') 13 | }) 14 | 15 | closeBtn.addEventListener('click', () => { 16 | sidebar.classList.remove('show-sidebar') 17 | }) 18 | -------------------------------------------------------------------------------- /00-default-starter/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

Starter

20 | 21 | 22 | -------------------------------------------------------------------------------- /09-menu/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Menu || Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

menu starter

20 | 21 | 22 | -------------------------------------------------------------------------------- /01-color-flipper/starter/hex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Color Flipper || Hex 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

hex page

20 | 21 | 22 | -------------------------------------------------------------------------------- /02-counter/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Counter - Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

counter starter

20 | 21 | 22 | -------------------------------------------------------------------------------- /01-color-flipper/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Color Flipper || Simple 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

simple page

20 | 21 | 22 | -------------------------------------------------------------------------------- /03-task-manager/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Task Manager Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

task manager starter

20 | 21 | 22 | -------------------------------------------------------------------------------- /10-grocery-bud/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Grocery Bud || Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

grocery bud starter

20 | 21 | 22 | -------------------------------------------------------------------------------- /05-navbar/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Navbar || Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

navbar starter

20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /08-questions/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Questions || Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

questions starter

20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /07-modal/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Modal || Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

modal starter

20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /06-sidebar/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Sidebar || Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |

sidebar starter

20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /08-questions/final/app.js: -------------------------------------------------------------------------------- 1 | const getElement = (selector, list) => { 2 | const el = list 3 | ? [...document.querySelectorAll(selector)] 4 | : document.querySelector(selector); 5 | 6 | // check if only one element 7 | if (list && el.length === 1) return el[0]; 8 | // check if list is not empty 9 | if (list && el.length > 0) return el; 10 | // if not a list and element exists 11 | if (!list && el) return el; 12 | throw new Error(`Please double check the ${selector}`); 13 | }; 14 | 15 | // traversing the dom 16 | const btns = getElement('.question-btn', true); 17 | 18 | btns.forEach(function (btn) { 19 | btn.addEventListener('click', function (e) { 20 | const question = e.currentTarget.parentElement.parentElement; 21 | 22 | question.classList.toggle('show-text'); 23 | }); 24 | }); 25 | -------------------------------------------------------------------------------- /08-questions/starter/app.js: -------------------------------------------------------------------------------- 1 | const getElement = (selector, list) => { 2 | const el = list 3 | ? [...document.querySelectorAll(selector)] 4 | : document.querySelector(selector); 5 | 6 | // check if only one element 7 | if (list && el.length === 1) return el[0]; 8 | // check if list is not empty 9 | if (list && el.length > 0) return el; 10 | // if not a list and element exists 11 | if (!list && el) return el; 12 | throw new Error(`Please double check the ${selector}`); 13 | }; 14 | 15 | // traversing the dom 16 | const btns = getElement('.question-btn', true); 17 | 18 | btns.forEach(function (btn) { 19 | btn.addEventListener('click', function (e) { 20 | const question = e.currentTarget.parentElement.parentElement; 21 | 22 | question.classList.toggle('show-text'); 23 | }); 24 | }); 25 | -------------------------------------------------------------------------------- /04-reviews/starter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Reviews || Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 20 |

reviews starter

21 | 22 | 23 | -------------------------------------------------------------------------------- /02-counter/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Counter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |
20 |
21 |

counter

22 | 0 23 |
24 | 25 | 26 | 27 |
28 |
29 |
30 | 31 | 32 | -------------------------------------------------------------------------------- /01-color-flipper/final/hex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Color Flipper || Hex 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 28 |
29 |
30 |

background color : #f8fafc

31 | 32 |
33 |
34 | 35 | 36 | -------------------------------------------------------------------------------- /01-color-flipper/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Color Flipper || Simple 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 28 |
29 |
30 |

background color : #f8fafc

31 | 32 |
33 |
34 | 35 | 36 | -------------------------------------------------------------------------------- /07-modal/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Modal || Final 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 25 |
26 | 27 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /03-task-manager/final/task.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Edit Task || Final 13 | 14 | 15 |
16 |

Edit Task

17 |
18 | 19 |

123456789

20 |
21 |
22 | 23 | 29 |
30 |
31 | 32 | 33 |
34 | 35 |
there was an error
36 |
37 | back to tasks 38 | 39 | 40 | -------------------------------------------------------------------------------- /04-reviews/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Reviews || Final 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 | 23 |
24 |

our reviews

25 |
26 |
27 | 28 |
29 |
30 | 36 |
37 |

sara jones

38 |

ux designer

39 |

40 | Lorem ipsum dolor sit, amet consectetur adipisicing elit. Non 41 | aperiam optio beatae debitis fugiat, impedit dignissimos! Aperiam 42 | eaque est perferendis. 43 |

44 |
45 | 48 | 51 |
52 | 53 |
54 |
55 |
56 | 57 | 58 | -------------------------------------------------------------------------------- /05-navbar/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Navbar || Final 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /06-sidebar/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Sidebar || Starter 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /03-task-manager/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Task Manager || Final 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |
20 |

task manager

21 |
22 | 28 | 29 |
30 | there was an error 31 |
32 | 33 |
34 |

Loading...

35 |
36 | 37 |
38 |
task name
39 | 49 |
50 | 51 | 52 |
53 |
54 | task name 55 |
56 | 66 |
67 | 68 |
69 |
70 | 71 | 72 | -------------------------------------------------------------------------------- /10-grocery-bud/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Grocery Bud || Final 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |
20 | 21 |
22 |
please enter value
23 |

grocery bud

24 |
25 | 26 | 29 |
30 |
31 | 32 |
33 |
34 | 35 |
36 | wash dishes 37 |
38 | 39 | 42 | 43 | 46 |
47 |
48 | 49 | 50 |
51 | clean house 52 |
53 | 54 | 57 | 58 | 61 |
62 |
63 | 64 |
65 | 66 |
67 |
68 | 69 | 70 | -------------------------------------------------------------------------------- /09-menu/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Menu || Final 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /08-questions/final/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Questions || Final 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 |

general questions

23 | 24 | 25 |
26 | 27 |
28 | 29 |
30 |

Do you accept all major credit cards?

31 | 39 |
40 | 41 |
42 |

43 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Est 44 | dolore illo dolores quia nemo doloribus quaerat, magni numquam 45 | repellat reprehenderit. 46 |

47 |
48 |
49 | 50 | 51 |
52 | 53 |
54 |

Do you suppport local farmers?

55 | 63 |
64 | 65 |
66 |

67 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Est 68 | dolore illo dolores quia nemo doloribus quaerat, magni numquam 69 | repellat reprehenderit. 70 |

71 |
72 |
73 | 74 | 75 |
76 | 77 |
78 |

Do you use organic ingredients?

79 | 80 | 88 |
89 | 90 |
91 |

92 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Est 93 | dolore illo dolores quia nemo doloribus quaerat, magni numquam 94 | repellat reprehenderit. 95 |

96 |
97 |
98 | 99 |
100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /09-menu/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | /* 256 | =============== 257 | Menu 258 | =============== 259 | */ 260 | -------------------------------------------------------------------------------- /05-navbar/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | /* 256 | =============== 257 | Navbar 258 | =============== 259 | */ 260 | -------------------------------------------------------------------------------- /06-sidebar/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | /* 256 | =============== 257 | Sidebar 258 | =============== 259 | */ 260 | -------------------------------------------------------------------------------- /00-default-starter/final/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | /* 256 | =============== 257 | Project 258 | =============== 259 | */ 260 | -------------------------------------------------------------------------------- /01-color-flipper/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 8 | html { 9 | font-size: 100%; 10 | } /*16px*/ 11 | 12 | :root { 13 | /* colors */ 14 | --primary-100: #e2e0ff; 15 | --primary-200: #c1beff; 16 | --primary-300: #a29dff; 17 | --primary-400: #837dff; 18 | --primary-500: #645cff; 19 | --primary-600: #504acc; 20 | --primary-700: #3c3799; 21 | --primary-800: #282566; 22 | --primary-900: #141233; 23 | 24 | /* grey */ 25 | --grey-50: #f8fafc; 26 | --grey-100: #f1f5f9; 27 | --grey-200: #e2e8f0; 28 | --grey-300: #cbd5e1; 29 | --grey-400: #94a3b8; 30 | --grey-500: #64748b; 31 | --grey-600: #475569; 32 | --grey-700: #334155; 33 | --grey-800: #1e293b; 34 | --grey-900: #0f172a; 35 | /* rest of the colors */ 36 | --black: #222; 37 | --white: #fff; 38 | --red-light: #f8d7da; 39 | --red-dark: #842029; 40 | --green-light: #d1e7dd; 41 | --green-dark: #0f5132; 42 | 43 | /* fonts */ 44 | --headingFont: 'Roboto', sans-serif; 45 | --bodyFont: 'Nunito', sans-serif; 46 | --smallText: 0.7em; 47 | /* rest of the vars */ 48 | --backgroundColor: var(--grey-50); 49 | --textColor: var(--grey-900); 50 | --borderRadius: 0.25rem; 51 | --letterSpacing: 1px; 52 | --transition: 0.3s ease-in-out all; 53 | --max-width: 1120px; 54 | --fixed-width: 600px; 55 | 56 | /* box shadow*/ 57 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 58 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 59 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 60 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 61 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 62 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 63 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 64 | } 65 | 66 | body { 67 | background: var(--backgroundColor); 68 | font-family: var(--bodyFont); 69 | font-weight: 400; 70 | line-height: 1.75; 71 | color: var(--textColor); 72 | } 73 | 74 | p { 75 | margin-bottom: 1.5rem; 76 | max-width: 40em; 77 | } 78 | 79 | h1, 80 | h2, 81 | h3, 82 | h4, 83 | h5 { 84 | margin: 0; 85 | margin-bottom: 1.38rem; 86 | font-family: var(--headingFont); 87 | font-weight: 400; 88 | line-height: 1.3; 89 | text-transform: capitalize; 90 | letter-spacing: var(--letterSpacing); 91 | } 92 | 93 | h1 { 94 | margin-top: 0; 95 | font-size: 3.052rem; 96 | } 97 | 98 | h2 { 99 | font-size: 2.441rem; 100 | } 101 | 102 | h3 { 103 | font-size: 1.953rem; 104 | } 105 | 106 | h4 { 107 | font-size: 1.563rem; 108 | } 109 | 110 | h5 { 111 | font-size: 1.25rem; 112 | } 113 | 114 | small, 115 | .text-small { 116 | font-size: var(--smallText); 117 | } 118 | 119 | a { 120 | text-decoration: none; 121 | } 122 | ul { 123 | list-style-type: none; 124 | padding: 0; 125 | } 126 | 127 | .img { 128 | width: 100%; 129 | display: block; 130 | object-fit: cover; 131 | } 132 | /* buttons */ 133 | 134 | .btn { 135 | cursor: pointer; 136 | color: var(--white); 137 | background: var(--primary-500); 138 | border: transparent; 139 | border-radius: var(--borderRadius); 140 | letter-spacing: var(--letterSpacing); 141 | padding: 0.375rem 0.75rem; 142 | box-shadow: var(--shadow-1); 143 | transition: var(--transition); 144 | text-transform: capitalize; 145 | display: inline-block; 146 | } 147 | .btn:hover { 148 | background: var(--primary-700); 149 | box-shadow: var(--shadow-3); 150 | } 151 | .btn-hipster { 152 | color: var(--primary-500); 153 | background: var(--primary-200); 154 | } 155 | .btn-hipster:hover { 156 | color: var(--primary-200); 157 | background: var(--primary-700); 158 | } 159 | .btn-block { 160 | width: 100%; 161 | } 162 | 163 | /* alerts */ 164 | .alert { 165 | padding: 0.375rem 0.75rem; 166 | margin-bottom: 1rem; 167 | border-color: transparent; 168 | border-radius: var(--borderRadius); 169 | } 170 | 171 | .alert-danger { 172 | color: var(--red-dark); 173 | background: var(--red-light); 174 | } 175 | .alert-success { 176 | color: var(--green-dark); 177 | background: var(--green-light); 178 | } 179 | /* form */ 180 | 181 | .form { 182 | width: 90vw; 183 | max-width: var(--fixed-width); 184 | background: var(--white); 185 | border-radius: var(--borderRadius); 186 | box-shadow: var(--shadow-2); 187 | padding: 2rem 2.5rem; 188 | margin: 3rem auto; 189 | } 190 | .form-label { 191 | display: block; 192 | font-size: var(--smallText); 193 | margin-bottom: 0.5rem; 194 | text-transform: capitalize; 195 | letter-spacing: var(--letterSpacing); 196 | } 197 | .form-input, 198 | .form-textarea { 199 | width: 100%; 200 | padding: 0.375rem 0.75rem; 201 | border-radius: var(--borderRadius); 202 | background: var(--backgroundColor); 203 | border: 1px solid var(--grey-200); 204 | } 205 | 206 | .form-row { 207 | margin-bottom: 1rem; 208 | } 209 | 210 | .form-textarea { 211 | height: 7rem; 212 | } 213 | ::placeholder { 214 | font-family: inherit; 215 | color: var(--grey-400); 216 | } 217 | .form-alert { 218 | color: var(--red-dark); 219 | letter-spacing: var(--letterSpacing); 220 | text-transform: capitalize; 221 | } 222 | /* alert */ 223 | 224 | @keyframes spinner { 225 | to { 226 | transform: rotate(360deg); 227 | } 228 | } 229 | 230 | .loading { 231 | width: 6rem; 232 | height: 6rem; 233 | border: 5px solid var(--grey-400); 234 | border-radius: 50%; 235 | border-top-color: var(--primary-500); 236 | animation: spinner 0.6s linear infinite; 237 | } 238 | .loading { 239 | margin: 0 auto; 240 | } 241 | /* title */ 242 | 243 | .title { 244 | text-align: center; 245 | } 246 | 247 | .title-underline { 248 | background: var(--primary-500); 249 | width: 7rem; 250 | height: 0.25rem; 251 | margin: 0 auto; 252 | margin-top: -1rem; 253 | } 254 | 255 | /* 256 | =============== 257 | Nav 258 | =============== 259 | */ 260 | -------------------------------------------------------------------------------- /07-modal/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: rgb(100, 92, 255); 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | /* 256 | =============== 257 | Modal 258 | =============== 259 | */ 260 | -------------------------------------------------------------------------------- /04-reviews/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | 256 | /* 257 | =============== 258 | Reviews 259 | =============== 260 | */ 261 | -------------------------------------------------------------------------------- /10-grocery-bud/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | /* 256 | =============== 257 | Grocery Bud 258 | =============== 259 | */ 260 | -------------------------------------------------------------------------------- /03-task-manager/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | 256 | /* 257 | =============== 258 | Task Manager 259 | =============== 260 | */ 261 | -------------------------------------------------------------------------------- /08-questions/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | 66 | --gold: #c59d5f; 67 | } 68 | 69 | body { 70 | background: var(--backgroundColor); 71 | font-family: var(--bodyFont); 72 | font-weight: 400; 73 | line-height: 1.75; 74 | color: var(--textColor); 75 | } 76 | 77 | p { 78 | margin-bottom: 1.5rem; 79 | max-width: 40em; 80 | } 81 | 82 | h1, 83 | h2, 84 | h3, 85 | h4, 86 | h5 { 87 | margin: 0; 88 | margin-bottom: 1.38rem; 89 | font-family: var(--headingFont); 90 | font-weight: 400; 91 | line-height: 1.3; 92 | text-transform: capitalize; 93 | letter-spacing: var(--letterSpacing); 94 | } 95 | 96 | h1 { 97 | margin-top: 0; 98 | font-size: 3.052rem; 99 | } 100 | 101 | h2 { 102 | font-size: 2.441rem; 103 | } 104 | 105 | h3 { 106 | font-size: 1.953rem; 107 | } 108 | 109 | h4 { 110 | font-size: 1.563rem; 111 | } 112 | 113 | h5 { 114 | font-size: 1.25rem; 115 | } 116 | 117 | small, 118 | .text-small { 119 | font-size: var(--smallText); 120 | } 121 | 122 | a { 123 | text-decoration: none; 124 | } 125 | ul { 126 | list-style-type: none; 127 | padding: 0; 128 | } 129 | 130 | .img { 131 | width: 100%; 132 | display: block; 133 | object-fit: cover; 134 | } 135 | /* buttons */ 136 | 137 | .btn { 138 | cursor: pointer; 139 | color: var(--white); 140 | background: var(--primary-500); 141 | border: transparent; 142 | border-radius: var(--borderRadius); 143 | letter-spacing: var(--letterSpacing); 144 | padding: 0.375rem 0.75rem; 145 | box-shadow: var(--shadow-1); 146 | transition: var(--transition); 147 | text-transform: capitalize; 148 | display: inline-block; 149 | } 150 | .btn:hover { 151 | background: var(--primary-700); 152 | box-shadow: var(--shadow-3); 153 | } 154 | .btn-hipster { 155 | color: var(--primary-500); 156 | background: var(--primary-200); 157 | } 158 | .btn-hipster:hover { 159 | color: var(--primary-200); 160 | background: var(--primary-700); 161 | } 162 | .btn-block { 163 | width: 100%; 164 | } 165 | 166 | /* alerts */ 167 | .alert { 168 | padding: 0.375rem 0.75rem; 169 | margin-bottom: 1rem; 170 | border-color: transparent; 171 | border-radius: var(--borderRadius); 172 | } 173 | 174 | .alert-danger { 175 | color: var(--red-dark); 176 | background: var(--red-light); 177 | } 178 | .alert-success { 179 | color: var(--green-dark); 180 | background: var(--green-light); 181 | } 182 | /* form */ 183 | 184 | .form { 185 | width: 90vw; 186 | max-width: var(--fixed-width); 187 | background: var(--white); 188 | border-radius: var(--borderRadius); 189 | box-shadow: var(--shadow-2); 190 | padding: 2rem 2.5rem; 191 | margin: 3rem auto; 192 | } 193 | .form-label { 194 | display: block; 195 | font-size: var(--smallText); 196 | margin-bottom: 0.5rem; 197 | text-transform: capitalize; 198 | letter-spacing: var(--letterSpacing); 199 | } 200 | .form-input, 201 | .form-textarea { 202 | width: 100%; 203 | padding: 0.375rem 0.75rem; 204 | border-radius: var(--borderRadius); 205 | background: var(--backgroundColor); 206 | border: 1px solid var(--grey-200); 207 | } 208 | 209 | .form-row { 210 | margin-bottom: 1rem; 211 | } 212 | 213 | .form-textarea { 214 | height: 7rem; 215 | } 216 | ::placeholder { 217 | font-family: inherit; 218 | color: var(--grey-400); 219 | } 220 | .form-alert { 221 | color: var(--red-dark); 222 | letter-spacing: var(--letterSpacing); 223 | text-transform: capitalize; 224 | } 225 | /* alert */ 226 | 227 | @keyframes spinner { 228 | to { 229 | transform: rotate(360deg); 230 | } 231 | } 232 | 233 | .loading { 234 | width: 6rem; 235 | height: 6rem; 236 | border: 5px solid var(--grey-400); 237 | border-radius: 50%; 238 | border-top-color: var(--primary-500); 239 | animation: spinner 0.6s linear infinite; 240 | } 241 | .loading { 242 | margin: 0 auto; 243 | } 244 | /* title */ 245 | 246 | .title { 247 | text-align: center; 248 | } 249 | 250 | .title-underline { 251 | background: var(--primary-500); 252 | width: 7rem; 253 | height: 0.25rem; 254 | margin: 0 auto; 255 | margin-top: -1rem; 256 | } 257 | /* 258 | =============== 259 | Questions 260 | =============== 261 | */ 262 | /* gold color in css vars */ 263 | -------------------------------------------------------------------------------- /02-counter/starter/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | /* --headingFont: 'Spectral', serif; 46 | --bodyFont: 'Karla', sans-serif; */ 47 | --headingFont: 'Roboto', sans-serif; 48 | --bodyFont: 'Nunito', sans-serif; 49 | --smallText: 0.7em; 50 | /* rest of the vars */ 51 | --backgroundColor: var(--grey-50); 52 | --textColor: var(--grey-900); 53 | --borderRadius: 0.25rem; 54 | --letterSpacing: 1px; 55 | --transition: 0.3s ease-in-out all; 56 | --max-width: 1120px; 57 | --fixed-width: 600px; 58 | 59 | /* box shadow*/ 60 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 61 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 62 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 63 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 64 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 65 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 66 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 67 | } 68 | 69 | body { 70 | background: var(--backgroundColor); 71 | font-family: var(--bodyFont); 72 | font-weight: 400; 73 | line-height: 1.75; 74 | color: var(--textColor); 75 | } 76 | 77 | p { 78 | margin-bottom: 1.5rem; 79 | max-width: 40em; 80 | } 81 | 82 | h1, 83 | h2, 84 | h3, 85 | h4, 86 | h5 { 87 | margin: 0; 88 | margin-bottom: 1.38rem; 89 | font-family: var(--headingFont); 90 | font-weight: 400; 91 | line-height: 1.3; 92 | text-transform: capitalize; 93 | letter-spacing: var(--letterSpacing); 94 | } 95 | 96 | h1 { 97 | margin-top: 0; 98 | font-size: 3.052rem; 99 | } 100 | 101 | h2 { 102 | font-size: 2.441rem; 103 | } 104 | 105 | h3 { 106 | font-size: 1.953rem; 107 | } 108 | 109 | h4 { 110 | font-size: 1.563rem; 111 | } 112 | 113 | h5 { 114 | font-size: 1.25rem; 115 | } 116 | 117 | small, 118 | .text-small { 119 | font-size: var(--smallText); 120 | } 121 | 122 | a { 123 | text-decoration: none; 124 | } 125 | ul { 126 | list-style-type: none; 127 | padding: 0; 128 | } 129 | 130 | .img { 131 | width: 100%; 132 | display: block; 133 | object-fit: cover; 134 | } 135 | /* buttons */ 136 | 137 | .btn { 138 | cursor: pointer; 139 | color: var(--white); 140 | background: var(--primary-500); 141 | border: transparent; 142 | border-radius: var(--borderRadius); 143 | letter-spacing: var(--letterSpacing); 144 | padding: 0.375rem 0.75rem; 145 | box-shadow: var(--shadow-1); 146 | transition: var(--transition); 147 | text-transform: capitalize; 148 | display: inline-block; 149 | } 150 | .btn:hover { 151 | background: var(--primary-700); 152 | box-shadow: var(--shadow-3); 153 | } 154 | .btn-hipster { 155 | color: var(--primary-500); 156 | background: var(--primary-200); 157 | } 158 | .btn-hipster:hover { 159 | color: var(--primary-200); 160 | background: var(--primary-700); 161 | } 162 | .btn-block { 163 | width: 100%; 164 | } 165 | 166 | /* alerts */ 167 | .alert { 168 | padding: 0.375rem 0.75rem; 169 | margin-bottom: 1rem; 170 | border-color: transparent; 171 | border-radius: var(--borderRadius); 172 | } 173 | 174 | .alert-danger { 175 | color: var(--red-dark); 176 | background: var(--red-light); 177 | } 178 | .alert-success { 179 | color: var(--green-dark); 180 | background: var(--green-light); 181 | } 182 | /* form */ 183 | 184 | .form { 185 | width: 90vw; 186 | max-width: var(--fixed-width); 187 | background: var(--white); 188 | border-radius: var(--borderRadius); 189 | box-shadow: var(--shadow-2); 190 | padding: 2rem 2.5rem; 191 | margin: 3rem auto; 192 | } 193 | .form-label { 194 | display: block; 195 | font-size: var(--smallText); 196 | margin-bottom: 0.5rem; 197 | text-transform: capitalize; 198 | letter-spacing: var(--letterSpacing); 199 | } 200 | .form-input, 201 | .form-textarea { 202 | width: 100%; 203 | padding: 0.375rem 0.75rem; 204 | border-radius: var(--borderRadius); 205 | background: var(--backgroundColor); 206 | border: 1px solid var(--grey-200); 207 | } 208 | 209 | .form-row { 210 | margin-bottom: 1rem; 211 | } 212 | 213 | .form-textarea { 214 | height: 7rem; 215 | } 216 | ::placeholder { 217 | font-family: inherit; 218 | color: var(--grey-400); 219 | } 220 | .form-alert { 221 | color: var(--red-dark); 222 | letter-spacing: var(--letterSpacing); 223 | text-transform: capitalize; 224 | } 225 | /* alert */ 226 | 227 | @keyframes spinner { 228 | to { 229 | transform: rotate(360deg); 230 | } 231 | } 232 | 233 | .loading { 234 | width: 6rem; 235 | height: 6rem; 236 | border: 5px solid var(--grey-400); 237 | border-radius: 50%; 238 | border-top-color: var(--primary-500); 239 | animation: spinner 0.6s linear infinite; 240 | } 241 | .loading { 242 | margin: 0 auto; 243 | } 244 | /* title */ 245 | 246 | .title { 247 | text-align: center; 248 | } 249 | 250 | .title-underline { 251 | background: var(--primary-500); 252 | width: 7rem; 253 | height: 0.25rem; 254 | margin: 0 auto; 255 | margin-top: -1rem; 256 | } 257 | /* 258 | =============== 259 | Counter 260 | =============== 261 | */ 262 | -------------------------------------------------------------------------------- /02-counter/final/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | 46 | --headingFont: 'Roboto', sans-serif; 47 | --bodyFont: 'Nunito', sans-serif; 48 | --smallText: 0.7em; 49 | /* rest of the vars */ 50 | --backgroundColor: var(--grey-50); 51 | --textColor: var(--grey-900); 52 | --borderRadius: 0.25rem; 53 | --letterSpacing: 1px; 54 | --transition: 0.3s ease-in-out all; 55 | --max-width: 1120px; 56 | --fixed-width: 600px; 57 | 58 | /* box shadow*/ 59 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 60 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 61 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 62 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 63 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 64 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 65 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 66 | } 67 | 68 | body { 69 | background: var(--backgroundColor); 70 | font-family: var(--bodyFont); 71 | font-weight: 400; 72 | line-height: 1.75; 73 | color: var(--textColor); 74 | } 75 | 76 | p { 77 | margin-bottom: 1.5rem; 78 | max-width: 40em; 79 | } 80 | 81 | h1, 82 | h2, 83 | h3, 84 | h4, 85 | h5 { 86 | margin: 0; 87 | margin-bottom: 1.38rem; 88 | font-family: var(--headingFont); 89 | font-weight: 400; 90 | line-height: 1.3; 91 | text-transform: capitalize; 92 | letter-spacing: var(--letterSpacing); 93 | } 94 | 95 | h1 { 96 | margin-top: 0; 97 | font-size: 3.052rem; 98 | } 99 | 100 | h2 { 101 | font-size: 2.441rem; 102 | } 103 | 104 | h3 { 105 | font-size: 1.953rem; 106 | } 107 | 108 | h4 { 109 | font-size: 1.563rem; 110 | } 111 | 112 | h5 { 113 | font-size: 1.25rem; 114 | } 115 | 116 | small, 117 | .text-small { 118 | font-size: var(--smallText); 119 | } 120 | 121 | a { 122 | text-decoration: none; 123 | } 124 | ul { 125 | list-style-type: none; 126 | padding: 0; 127 | } 128 | 129 | .img { 130 | width: 100%; 131 | display: block; 132 | object-fit: cover; 133 | } 134 | /* buttons */ 135 | 136 | .btn { 137 | cursor: pointer; 138 | color: var(--white); 139 | background: var(--primary-500); 140 | border: transparent; 141 | border-radius: var(--borderRadius); 142 | letter-spacing: var(--letterSpacing); 143 | padding: 0.375rem 0.75rem; 144 | box-shadow: var(--shadow-1); 145 | transition: var(--transition); 146 | text-transform: capitalize; 147 | display: inline-block; 148 | } 149 | .btn:hover { 150 | background: var(--primary-700); 151 | box-shadow: var(--shadow-3); 152 | } 153 | .btn-hipster { 154 | color: var(--primary-500); 155 | background: var(--primary-200); 156 | } 157 | .btn-hipster:hover { 158 | color: var(--primary-200); 159 | background: var(--primary-700); 160 | } 161 | .btn-block { 162 | width: 100%; 163 | } 164 | 165 | /* alerts */ 166 | .alert { 167 | padding: 0.375rem 0.75rem; 168 | margin-bottom: 1rem; 169 | border-color: transparent; 170 | border-radius: var(--borderRadius); 171 | } 172 | 173 | .alert-danger { 174 | color: var(--red-dark); 175 | background: var(--red-light); 176 | } 177 | .alert-success { 178 | color: var(--green-dark); 179 | background: var(--green-light); 180 | } 181 | /* form */ 182 | 183 | .form { 184 | width: 90vw; 185 | max-width: var(--fixed-width); 186 | background: var(--white); 187 | border-radius: var(--borderRadius); 188 | box-shadow: var(--shadow-2); 189 | padding: 2rem 2.5rem; 190 | margin: 3rem auto; 191 | } 192 | .form-label { 193 | display: block; 194 | font-size: var(--smallText); 195 | margin-bottom: 0.5rem; 196 | text-transform: capitalize; 197 | letter-spacing: var(--letterSpacing); 198 | } 199 | .form-input, 200 | .form-textarea { 201 | width: 100%; 202 | padding: 0.375rem 0.75rem; 203 | border-radius: var(--borderRadius); 204 | background: var(--backgroundColor); 205 | border: 1px solid var(--grey-200); 206 | } 207 | 208 | .form-row { 209 | margin-bottom: 1rem; 210 | } 211 | 212 | .form-textarea { 213 | height: 7rem; 214 | } 215 | ::placeholder { 216 | font-family: inherit; 217 | color: var(--grey-400); 218 | } 219 | .form-alert { 220 | color: var(--red-dark); 221 | letter-spacing: var(--letterSpacing); 222 | text-transform: capitalize; 223 | } 224 | /* alert */ 225 | 226 | @keyframes spinner { 227 | to { 228 | transform: rotate(360deg); 229 | } 230 | } 231 | 232 | .loading { 233 | width: 6rem; 234 | height: 6rem; 235 | border: 5px solid var(--grey-400); 236 | border-radius: 50%; 237 | border-top-color: var(--primary-500); 238 | animation: spinner 0.6s linear infinite; 239 | } 240 | .loading { 241 | margin: 0 auto; 242 | } 243 | /* title */ 244 | 245 | .title { 246 | text-align: center; 247 | } 248 | 249 | .title-underline { 250 | background: var(--primary-500); 251 | width: 7rem; 252 | height: 0.25rem; 253 | margin: 0 auto; 254 | margin-top: -1rem; 255 | } 256 | /* 257 | =============== 258 | Counter 259 | =============== 260 | */ 261 | 262 | main { 263 | min-height: 100vh; 264 | display: grid; 265 | place-items: center; 266 | } 267 | .container { 268 | text-align: center; 269 | } 270 | .container h1 { 271 | font-size: 4rem; 272 | font-weight: 600; 273 | margin-bottom: 0; 274 | } 275 | #value { 276 | font-size: 7rem; 277 | font-weight: 600; 278 | line-height: 1.25; 279 | } 280 | 281 | .counter-btn { 282 | text-transform: uppercase; 283 | background: transparent; 284 | color: var(--textColor); 285 | border: 2px solid var(--textColor); 286 | margin: 0.5rem; 287 | } 288 | .counter-btn:hover { 289 | background: var(--textColor); 290 | color: var(--white); 291 | } 292 | -------------------------------------------------------------------------------- /08-questions/final/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | --gold: #c59d5f; 66 | } 67 | 68 | body { 69 | background: var(--backgroundColor); 70 | font-family: var(--bodyFont); 71 | font-weight: 400; 72 | line-height: 1.75; 73 | color: var(--textColor); 74 | } 75 | 76 | p { 77 | margin-bottom: 1.5rem; 78 | max-width: 40em; 79 | } 80 | 81 | h1, 82 | h2, 83 | h3, 84 | h4, 85 | h5 { 86 | margin: 0; 87 | margin-bottom: 1.38rem; 88 | font-family: var(--headingFont); 89 | font-weight: 400; 90 | line-height: 1.3; 91 | text-transform: capitalize; 92 | letter-spacing: var(--letterSpacing); 93 | } 94 | 95 | h1 { 96 | margin-top: 0; 97 | font-size: 3.052rem; 98 | } 99 | 100 | h2 { 101 | font-size: 2.441rem; 102 | } 103 | 104 | h3 { 105 | font-size: 1.953rem; 106 | } 107 | 108 | h4 { 109 | font-size: 1.563rem; 110 | } 111 | 112 | h5 { 113 | font-size: 1.25rem; 114 | } 115 | 116 | small, 117 | .text-small { 118 | font-size: var(--smallText); 119 | } 120 | 121 | a { 122 | text-decoration: none; 123 | } 124 | ul { 125 | list-style-type: none; 126 | padding: 0; 127 | } 128 | 129 | .img { 130 | width: 100%; 131 | display: block; 132 | object-fit: cover; 133 | } 134 | /* buttons */ 135 | 136 | .btn { 137 | cursor: pointer; 138 | color: var(--white); 139 | background: var(--primary-500); 140 | border: transparent; 141 | border-radius: var(--borderRadius); 142 | letter-spacing: var(--letterSpacing); 143 | padding: 0.375rem 0.75rem; 144 | box-shadow: var(--shadow-1); 145 | transition: var(--transition); 146 | text-transform: capitalize; 147 | display: inline-block; 148 | } 149 | .btn:hover { 150 | background: var(--primary-700); 151 | box-shadow: var(--shadow-3); 152 | } 153 | .btn-hipster { 154 | color: var(--primary-500); 155 | background: var(--primary-200); 156 | } 157 | .btn-hipster:hover { 158 | color: var(--primary-200); 159 | background: var(--primary-700); 160 | } 161 | .btn-block { 162 | width: 100%; 163 | } 164 | 165 | /* alerts */ 166 | .alert { 167 | padding: 0.375rem 0.75rem; 168 | margin-bottom: 1rem; 169 | border-color: transparent; 170 | border-radius: var(--borderRadius); 171 | } 172 | 173 | .alert-danger { 174 | color: var(--red-dark); 175 | background: var(--red-light); 176 | } 177 | .alert-success { 178 | color: var(--green-dark); 179 | background: var(--green-light); 180 | } 181 | /* form */ 182 | 183 | .form { 184 | width: 90vw; 185 | max-width: var(--fixed-width); 186 | background: var(--white); 187 | border-radius: var(--borderRadius); 188 | box-shadow: var(--shadow-2); 189 | padding: 2rem 2.5rem; 190 | margin: 3rem auto; 191 | } 192 | .form-label { 193 | display: block; 194 | font-size: var(--smallText); 195 | margin-bottom: 0.5rem; 196 | text-transform: capitalize; 197 | letter-spacing: var(--letterSpacing); 198 | } 199 | .form-input, 200 | .form-textarea { 201 | width: 100%; 202 | padding: 0.375rem 0.75rem; 203 | border-radius: var(--borderRadius); 204 | background: var(--backgroundColor); 205 | border: 1px solid var(--grey-200); 206 | } 207 | 208 | .form-row { 209 | margin-bottom: 1rem; 210 | } 211 | 212 | .form-textarea { 213 | height: 7rem; 214 | } 215 | ::placeholder { 216 | font-family: inherit; 217 | color: var(--grey-400); 218 | } 219 | .form-alert { 220 | color: var(--red-dark); 221 | letter-spacing: var(--letterSpacing); 222 | text-transform: capitalize; 223 | } 224 | /* alert */ 225 | 226 | @keyframes spinner { 227 | to { 228 | transform: rotate(360deg); 229 | } 230 | } 231 | 232 | .loading { 233 | width: 6rem; 234 | height: 6rem; 235 | border: 5px solid var(--grey-400); 236 | border-radius: 50%; 237 | border-top-color: var(--primary-500); 238 | animation: spinner 0.6s linear infinite; 239 | } 240 | .loading { 241 | margin: 0 auto; 242 | } 243 | /* title */ 244 | 245 | .title { 246 | text-align: center; 247 | } 248 | 249 | .title-underline { 250 | background: var(--primary-500); 251 | width: 7rem; 252 | height: 0.25rem; 253 | margin: 0 auto; 254 | margin-top: -1rem; 255 | } 256 | /* add gold color to css vars */ 257 | /* 258 | =============== 259 | Questions 260 | =============== 261 | */ 262 | .questions { 263 | margin-top: 10rem; 264 | } 265 | .questions .title { 266 | color: var(--gold); 267 | font-family: 'Great Vibes', cursive; 268 | } 269 | .section-center { 270 | max-width: var(--fixed-width); 271 | margin: 0 auto; 272 | margin-top: 3rem; 273 | } 274 | .question { 275 | background: var(--white); 276 | border-radius: var(--borderRadius); 277 | box-shadow: var(--shadow-2); 278 | padding: 1.5rem 1rem; 279 | margin-bottom: 2rem; 280 | } 281 | .question-title { 282 | display: flex; 283 | justify-content: space-between; 284 | align-items: center; 285 | } 286 | 287 | .question-title p { 288 | margin: 0; 289 | letter-spacing: var(--spacing); 290 | color: var(--grey-800); 291 | } 292 | .question-btn { 293 | font-size: 1.5rem; 294 | background: transparent; 295 | border-color: transparent; 296 | cursor: pointer; 297 | color: var(--gold); 298 | transition: var(--transition); 299 | } 300 | .question-btn:hover { 301 | transform: rotate(90deg); 302 | } 303 | .question-text { 304 | padding-top: 1rem; 305 | margin-top: 1rem; 306 | border-top: 1px solid rgba(0, 0, 0, 0.2); 307 | } 308 | .question-text p { 309 | margin: 0; 310 | color: var(--grey-500); 311 | } 312 | /* hide text */ 313 | .question-text { 314 | display: none; 315 | } 316 | .show-text .question-text { 317 | display: block; 318 | } 319 | .minus-icon { 320 | display: none; 321 | } 322 | .show-text .minus-icon { 323 | display: inline; 324 | } 325 | .show-text .plus-icon { 326 | display: none; 327 | } 328 | -------------------------------------------------------------------------------- /09-menu/final/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | /* 256 | =============== 257 | Menu 258 | =============== 259 | */ 260 | .menu { 261 | padding: 5rem 0; 262 | } 263 | 264 | .btn-container { 265 | margin-top: 2rem; 266 | margin-bottom: 4rem; 267 | display: flex; 268 | justify-content: center; 269 | gap: 1rem; 270 | } 271 | .filter-btn { 272 | background: transparent; 273 | color: var(--primary-500); 274 | border: 1px solid var(--primary-500); 275 | } 276 | .filter-btn:hover { 277 | color: var(--white); 278 | border: 1px solid var(--primary-700); 279 | } 280 | .section-center { 281 | width: 90vw; 282 | margin: 0 auto; 283 | max-width: 1170px; 284 | display: grid; 285 | gap: 3rem 2rem; 286 | justify-items: center; 287 | } 288 | .menu-item { 289 | display: grid; 290 | gap: 1rem 2rem; 291 | max-width: 25rem; 292 | } 293 | .photo { 294 | height: 200px; 295 | border-radius: var(--borderRadius); 296 | } 297 | .item-info header { 298 | display: flex; 299 | justify-content: space-between; 300 | border-bottom: 3px dotted var(--grey-500); 301 | } 302 | .item-info h5 { 303 | margin-bottom: 0.5rem; 304 | } 305 | .price { 306 | color: var(--primary-500); 307 | } 308 | .item-text { 309 | margin: 0; 310 | color: var(--grey-500); 311 | padding-top: 0.5rem; 312 | } 313 | 314 | @media screen and (min-width: 768px) { 315 | .menu-item { 316 | grid-template-columns: 225px 1fr; 317 | gap: 0 1.25rem; 318 | max-width: 40rem; 319 | } 320 | .photo { 321 | height: 175px; 322 | } 323 | } 324 | @media screen and (min-width: 1200px) { 325 | .section-center { 326 | width: 95vw; 327 | grid-template-columns: 1fr 1fr; 328 | } 329 | .photo { 330 | height: 150px; 331 | } 332 | } 333 | -------------------------------------------------------------------------------- /07-modal/final/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | 8 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 9 | html { 10 | font-size: 100%; 11 | } /*16px*/ 12 | 13 | :root { 14 | /* colors */ 15 | --primary-100: #e2e0ff; 16 | --primary-200: #c1beff; 17 | --primary-300: #a29dff; 18 | --primary-400: #837dff; 19 | --primary-500: #645cff; 20 | --primary-600: #504acc; 21 | --primary-700: #3c3799; 22 | --primary-800: #282566; 23 | --primary-900: #141233; 24 | 25 | /* grey */ 26 | --grey-50: #f8fafc; 27 | --grey-100: #f1f5f9; 28 | --grey-200: #e2e8f0; 29 | --grey-300: #cbd5e1; 30 | --grey-400: #94a3b8; 31 | --grey-500: #64748b; 32 | --grey-600: #475569; 33 | --grey-700: #334155; 34 | --grey-800: #1e293b; 35 | --grey-900: #0f172a; 36 | /* rest of the colors */ 37 | --black: #222; 38 | --white: #fff; 39 | --red-light: #f8d7da; 40 | --red-dark: #842029; 41 | --green-light: #d1e7dd; 42 | --green-dark: #0f5132; 43 | 44 | /* fonts */ 45 | --headingFont: 'Roboto', sans-serif; 46 | --bodyFont: 'Nunito', sans-serif; 47 | --smallText: 0.7em; 48 | /* rest of the vars */ 49 | --backgroundColor: var(--grey-50); 50 | --textColor: var(--grey-900); 51 | --borderRadius: 0.25rem; 52 | --letterSpacing: 1px; 53 | --transition: 0.3s ease-in-out all; 54 | --max-width: 1120px; 55 | --fixed-width: 600px; 56 | 57 | /* box shadow*/ 58 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 59 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 60 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 61 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 62 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 63 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 64 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 65 | } 66 | 67 | body { 68 | background: var(--backgroundColor); 69 | font-family: var(--bodyFont); 70 | font-weight: 400; 71 | line-height: 1.75; 72 | color: var(--textColor); 73 | } 74 | 75 | p { 76 | margin-bottom: 1.5rem; 77 | max-width: 40em; 78 | } 79 | 80 | h1, 81 | h2, 82 | h3, 83 | h4, 84 | h5 { 85 | margin: 0; 86 | margin-bottom: 1.38rem; 87 | font-family: var(--headingFont); 88 | font-weight: 400; 89 | line-height: 1.3; 90 | text-transform: capitalize; 91 | letter-spacing: var(--letterSpacing); 92 | } 93 | 94 | h1 { 95 | margin-top: 0; 96 | font-size: 3.052rem; 97 | } 98 | 99 | h2 { 100 | font-size: 2.441rem; 101 | } 102 | 103 | h3 { 104 | font-size: 1.953rem; 105 | } 106 | 107 | h4 { 108 | font-size: 1.563rem; 109 | } 110 | 111 | h5 { 112 | font-size: 1.25rem; 113 | } 114 | 115 | small, 116 | .text-small { 117 | font-size: var(--smallText); 118 | } 119 | 120 | a { 121 | text-decoration: none; 122 | } 123 | ul { 124 | list-style-type: none; 125 | padding: 0; 126 | } 127 | 128 | .img { 129 | width: 100%; 130 | display: block; 131 | object-fit: cover; 132 | } 133 | /* buttons */ 134 | 135 | .btn { 136 | cursor: pointer; 137 | color: var(--white); 138 | background: var(--primary-500); 139 | border: transparent; 140 | border-radius: var(--borderRadius); 141 | letter-spacing: var(--letterSpacing); 142 | padding: 0.375rem 0.75rem; 143 | box-shadow: var(--shadow-1); 144 | transition: var(--transition); 145 | text-transform: capitalize; 146 | display: inline-block; 147 | } 148 | .btn:hover { 149 | background: var(--primary-700); 150 | box-shadow: var(--shadow-3); 151 | } 152 | .btn-hipster { 153 | color: var(--primary-500); 154 | background: var(--primary-200); 155 | } 156 | .btn-hipster:hover { 157 | color: var(--primary-200); 158 | background: var(--primary-700); 159 | } 160 | .btn-block { 161 | width: 100%; 162 | } 163 | 164 | /* alerts */ 165 | .alert { 166 | padding: 0.375rem 0.75rem; 167 | margin-bottom: 1rem; 168 | border-color: transparent; 169 | border-radius: var(--borderRadius); 170 | } 171 | 172 | .alert-danger { 173 | color: var(--red-dark); 174 | background: var(--red-light); 175 | } 176 | .alert-success { 177 | color: var(--green-dark); 178 | background: var(--green-light); 179 | } 180 | /* form */ 181 | 182 | .form { 183 | width: 90vw; 184 | max-width: var(--fixed-width); 185 | background: var(--white); 186 | border-radius: var(--borderRadius); 187 | box-shadow: var(--shadow-2); 188 | padding: 2rem 2.5rem; 189 | margin: 3rem auto; 190 | } 191 | .form-label { 192 | display: block; 193 | font-size: var(--smallText); 194 | margin-bottom: 0.5rem; 195 | text-transform: capitalize; 196 | letter-spacing: var(--letterSpacing); 197 | } 198 | .form-input, 199 | .form-textarea { 200 | width: 100%; 201 | padding: 0.375rem 0.75rem; 202 | border-radius: var(--borderRadius); 203 | background: var(--backgroundColor); 204 | border: 1px solid var(--grey-200); 205 | } 206 | 207 | .form-row { 208 | margin-bottom: 1rem; 209 | } 210 | 211 | .form-textarea { 212 | height: 7rem; 213 | } 214 | ::placeholder { 215 | font-family: inherit; 216 | color: var(--grey-400); 217 | } 218 | .form-alert { 219 | color: var(--red-dark); 220 | letter-spacing: var(--letterSpacing); 221 | text-transform: capitalize; 222 | } 223 | /* alert */ 224 | 225 | @keyframes spinner { 226 | to { 227 | transform: rotate(360deg); 228 | } 229 | } 230 | 231 | .loading { 232 | width: 6rem; 233 | height: 6rem; 234 | border: 5px solid var(--grey-400); 235 | border-radius: 50%; 236 | border-top-color: var(--primary-500); 237 | animation: spinner 0.6s linear infinite; 238 | } 239 | .loading { 240 | margin: 0 auto; 241 | } 242 | /* title */ 243 | 244 | .title { 245 | text-align: center; 246 | } 247 | 248 | .title-underline { 249 | background: var(--primary-500); 250 | width: 7rem; 251 | height: 0.25rem; 252 | margin: 0 auto; 253 | margin-top: -1rem; 254 | } 255 | /* 256 | =============== 257 | Modal 258 | =============== 259 | */ 260 | 261 | .hero { 262 | min-height: 100vh; 263 | background: url('./hero.jpeg') center/cover no-repeat; 264 | display: grid; 265 | place-items: center; 266 | } 267 | .banner { 268 | background: var(--white); 269 | padding: 4rem 0; 270 | border-radius: var(--borderRadius); 271 | box-shadow: var(--shadow-2); 272 | width: 90vw; 273 | text-align: center; 274 | max-width: var(--fixed-width); 275 | } 276 | .modal-overlay { 277 | position: fixed; 278 | /* background: rgba(73, 166, 233, 0.5); */ 279 | /* background: rgba(100, 92, 255, 0.5); */ 280 | background: rgba(0, 0, 0, 0.6); 281 | /* top: 0; 282 | left: 0; 283 | bottom: 0; 284 | right: 0; */ 285 | inset: 0; 286 | /* width: 100%; 287 | height: 100%; */ 288 | display: grid; 289 | place-items: center; 290 | visibility: hidden; 291 | z-index: -10; 292 | transition: all 1s ease-in-out; 293 | /* display: none; */ 294 | } 295 | .open-modal { 296 | /* display: grid; */ 297 | visibility: visible; 298 | z-index: 10; 299 | } 300 | 301 | .modal-container { 302 | background: var(--white); 303 | border-radius: var(--borderRadius); 304 | width: 90vw; 305 | height: 35vh; 306 | max-width: var(--fixed-width); 307 | display: grid; 308 | place-items: center; 309 | position: relative; 310 | } 311 | 312 | .close-btn { 313 | position: absolute; 314 | top: 1rem; 315 | right: 1rem; 316 | font-size: 2rem; 317 | background: transparent; 318 | border-color: transparent; 319 | color: var(--red-dark); 320 | cursor: pointer; 321 | transition: var(--transition); 322 | } 323 | .close-btn:hover { 324 | transform: rotate(360deg) scale(1.3); 325 | } 326 | -------------------------------------------------------------------------------- /01-color-flipper/final/main.css: -------------------------------------------------------------------------------- 1 | *, 2 | ::after, 3 | ::before { 4 | box-sizing: border-box; 5 | } 6 | /* fonts */ 7 | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600&family=Montserrat&display=swap'); 8 | html { 9 | font-size: 100%; 10 | } /*16px*/ 11 | 12 | :root { 13 | /* colors */ 14 | --primary-100: #e2e0ff; 15 | --primary-200: #c1beff; 16 | --primary-300: #a29dff; 17 | --primary-400: #837dff; 18 | --primary-500: #645cff; 19 | --primary-600: #504acc; 20 | --primary-700: #3c3799; 21 | --primary-800: #282566; 22 | --primary-900: #141233; 23 | 24 | /* grey */ 25 | --grey-50: #f8fafc; 26 | --grey-100: #f1f5f9; 27 | --grey-200: #e2e8f0; 28 | --grey-300: #cbd5e1; 29 | --grey-400: #94a3b8; 30 | --grey-500: #64748b; 31 | --grey-600: #475569; 32 | --grey-700: #334155; 33 | --grey-800: #1e293b; 34 | --grey-900: #0f172a; 35 | /* rest of the colors */ 36 | --black: #222; 37 | --white: #fff; 38 | --red-light: #f8d7da; 39 | --red-dark: #842029; 40 | --green-light: #d1e7dd; 41 | --green-dark: #0f5132; 42 | 43 | /* fonts */ 44 | --headingFont: 'Roboto', sans-serif; 45 | --bodyFont: 'Nunito', sans-serif; 46 | --smallText: 0.7em; 47 | /* rest of the vars */ 48 | --backgroundColor: var(--grey-50); 49 | --textColor: var(--grey-900); 50 | --borderRadius: 0.25rem; 51 | --letterSpacing: 1px; 52 | --transition: 0.3s ease-in-out all; 53 | --max-width: 1120px; 54 | --fixed-width: 600px; 55 | 56 | /* box shadow*/ 57 | --shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); 58 | --shadow-2: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 59 | 0 2px 4px -1px rgba(0, 0, 0, 0.06); 60 | --shadow-3: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 61 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 62 | --shadow-4: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 63 | 0 10px 10px -5px rgba(0, 0, 0, 0.04); 64 | } 65 | 66 | body { 67 | background: var(--backgroundColor); 68 | font-family: var(--bodyFont); 69 | font-weight: 400; 70 | line-height: 1.75; 71 | color: var(--textColor); 72 | } 73 | 74 | p { 75 | margin-bottom: 1.5rem; 76 | max-width: 40em; 77 | } 78 | 79 | h1, 80 | h2, 81 | h3, 82 | h4, 83 | h5 { 84 | margin: 0; 85 | margin-bottom: 1.38rem; 86 | font-family: var(--headingFont); 87 | font-weight: 400; 88 | line-height: 1.3; 89 | text-transform: capitalize; 90 | letter-spacing: var(--letterSpacing); 91 | } 92 | 93 | h1 { 94 | margin-top: 0; 95 | font-size: 3.052rem; 96 | } 97 | 98 | h2 { 99 | font-size: 2.441rem; 100 | } 101 | 102 | h3 { 103 | font-size: 1.953rem; 104 | } 105 | 106 | h4 { 107 | font-size: 1.563rem; 108 | } 109 | 110 | h5 { 111 | font-size: 1.25rem; 112 | } 113 | 114 | small, 115 | .text-small { 116 | font-size: var(--smallText); 117 | } 118 | 119 | a { 120 | text-decoration: none; 121 | } 122 | ul { 123 | list-style-type: none; 124 | padding: 0; 125 | } 126 | 127 | .img { 128 | width: 100%; 129 | display: block; 130 | object-fit: cover; 131 | } 132 | /* buttons */ 133 | 134 | .btn { 135 | cursor: pointer; 136 | color: var(--white); 137 | background: var(--primary-500); 138 | border: transparent; 139 | border-radius: var(--borderRadius); 140 | letter-spacing: var(--letterSpacing); 141 | padding: 0.375rem 0.75rem; 142 | box-shadow: var(--shadow-1); 143 | transition: var(--transition); 144 | text-transform: capitalize; 145 | display: inline-block; 146 | } 147 | .btn:hover { 148 | background: var(--primary-700); 149 | box-shadow: var(--shadow-3); 150 | } 151 | .btn-hipster { 152 | color: var(--primary-500); 153 | background: var(--primary-200); 154 | } 155 | .btn-hipster:hover { 156 | color: var(--primary-200); 157 | background: var(--primary-700); 158 | } 159 | .btn-block { 160 | width: 100%; 161 | } 162 | 163 | /* alerts */ 164 | .alert { 165 | padding: 0.375rem 0.75rem; 166 | margin-bottom: 1rem; 167 | border-color: transparent; 168 | border-radius: var(--borderRadius); 169 | } 170 | 171 | .alert-danger { 172 | color: var(--red-dark); 173 | background: var(--red-light); 174 | } 175 | .alert-success { 176 | color: var(--green-dark); 177 | background: var(--green-light); 178 | } 179 | /* form */ 180 | 181 | .form { 182 | width: 90vw; 183 | max-width: var(--fixed-width); 184 | background: var(--white); 185 | border-radius: var(--borderRadius); 186 | box-shadow: var(--shadow-2); 187 | padding: 2rem 2.5rem; 188 | margin: 3rem auto; 189 | } 190 | .form-label { 191 | display: block; 192 | font-size: var(--smallText); 193 | margin-bottom: 0.5rem; 194 | text-transform: capitalize; 195 | letter-spacing: var(--letterSpacing); 196 | } 197 | .form-input, 198 | .form-textarea { 199 | width: 100%; 200 | padding: 0.375rem 0.75rem; 201 | border-radius: var(--borderRadius); 202 | background: var(--backgroundColor); 203 | border: 1px solid var(--grey-200); 204 | } 205 | 206 | .form-row { 207 | margin-bottom: 1rem; 208 | } 209 | 210 | .form-textarea { 211 | height: 7rem; 212 | } 213 | ::placeholder { 214 | font-family: inherit; 215 | color: var(--grey-400); 216 | } 217 | .form-alert { 218 | color: var(--red-dark); 219 | letter-spacing: var(--letterSpacing); 220 | text-transform: capitalize; 221 | } 222 | /* alert */ 223 | 224 | @keyframes spinner { 225 | to { 226 | transform: rotate(360deg); 227 | } 228 | } 229 | 230 | .loading { 231 | width: 6rem; 232 | height: 6rem; 233 | border: 5px solid var(--grey-400); 234 | border-radius: 50%; 235 | border-top-color: var(--primary-500); 236 | animation: spinner 0.6s linear infinite; 237 | } 238 | .loading { 239 | margin: 0 auto; 240 | } 241 | /* title */ 242 | 243 | .title { 244 | text-align: center; 245 | } 246 | 247 | .title-underline { 248 | background: var(--primary-500); 249 | width: 7rem; 250 | height: 0.25rem; 251 | margin: 0 auto; 252 | margin-top: -1rem; 253 | } 254 | 255 | /* 256 | =============== 257 | Nav 258 | =============== 259 | */ 260 | nav { 261 | background: var(--white); 262 | height: 4rem; 263 | display: grid; 264 | align-items: center; 265 | box-shadow: var(--shadow-2); 266 | } 267 | .nav-center { 268 | width: 90vw; 269 | max-width: var(--fixed-width); 270 | margin: 0 auto; 271 | display: flex; 272 | align-items: center; 273 | justify-content: space-between; 274 | } 275 | .nav-center h4 { 276 | margin-bottom: 0; 277 | color: var(--primary-500); 278 | letter-spacing: 2px; 279 | font-weight: 600; 280 | } 281 | .nav-links { 282 | display: flex; 283 | } 284 | nav a { 285 | text-transform: capitalize; 286 | font-size: 1rem; 287 | color: var(--primary-900); 288 | letter-spacing: var(--letterSpacing); 289 | margin-right: 1rem; 290 | transition: var(--transition); 291 | } 292 | nav a:hover { 293 | color: var(--primary-500); 294 | } 295 | /* 296 | =============== 297 | Container 298 | =============== 299 | */ 300 | main { 301 | min-height: calc(100vh - 4rem); 302 | display: grid; 303 | place-items: center; 304 | } 305 | .container { 306 | text-align: center; 307 | } 308 | .container h2 { 309 | background: var(--black); 310 | color: var(--white); 311 | padding: 1rem; 312 | border-radius: var(--borderRadius); 313 | margin-bottom: 2.5rem; 314 | letter-spacing: 5px; 315 | font-weight: bold; 316 | } 317 | .color { 318 | color: var(--primary-500); 319 | text-transform: uppercase; 320 | } 321 | .btn-hero { 322 | text-transform: uppercase; 323 | background: transparent; 324 | color: var(--black); 325 | letter-spacing: 0.25rem; 326 | font-weight: bold; 327 | border: 2px solid var(--black); 328 | padding: 0.75rem 1.25rem; 329 | } 330 | .btn-hero:hover { 331 | color: var(--white); 332 | background: var(--black); 333 | } 334 | -------------------------------------------------------------------------------- /06-sidebar/final/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /06-sidebar/starter/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /07-modal/final/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Render the `main` element consistently in IE. 29 | */ 30 | 31 | main { 32 | display: block; 33 | } 34 | 35 | /** 36 | * Correct the font size and margin on `h1` elements within `section` and 37 | * `article` contexts in Chrome, Firefox, and Safari. 38 | */ 39 | 40 | h1 { 41 | font-size: 2em; 42 | margin: 0.67em 0; 43 | } 44 | 45 | /* Grouping content 46 | ========================================================================== */ 47 | 48 | /** 49 | * 1. Add the correct box sizing in Firefox. 50 | * 2. Show the overflow in Edge and IE. 51 | */ 52 | 53 | hr { 54 | box-sizing: content-box; /* 1 */ 55 | height: 0; /* 1 */ 56 | overflow: visible; /* 2 */ 57 | } 58 | 59 | /** 60 | * 1. Correct the inheritance and scaling of font size in all browsers. 61 | * 2. Correct the odd `em` font sizing in all browsers. 62 | */ 63 | 64 | pre { 65 | font-family: monospace, monospace; /* 1 */ 66 | font-size: 1em; /* 2 */ 67 | } 68 | 69 | /* Text-level semantics 70 | ========================================================================== */ 71 | 72 | /** 73 | * Remove the gray background on active links in IE 10. 74 | */ 75 | 76 | a { 77 | background-color: transparent; 78 | } 79 | 80 | /** 81 | * 1. Remove the bottom border in Chrome 57- 82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 83 | */ 84 | 85 | abbr[title] { 86 | border-bottom: none; /* 1 */ 87 | text-decoration: underline; /* 2 */ 88 | text-decoration: underline dotted; /* 2 */ 89 | } 90 | 91 | /** 92 | * Add the correct font weight in Chrome, Edge, and Safari. 93 | */ 94 | 95 | b, 96 | strong { 97 | font-weight: bolder; 98 | } 99 | 100 | /** 101 | * 1. Correct the inheritance and scaling of font size in all browsers. 102 | * 2. Correct the odd `em` font sizing in all browsers. 103 | */ 104 | 105 | code, 106 | kbd, 107 | samp { 108 | font-family: monospace, monospace; /* 1 */ 109 | font-size: 1em; /* 2 */ 110 | } 111 | 112 | /** 113 | * Add the correct font size in all browsers. 114 | */ 115 | 116 | small { 117 | font-size: 80%; 118 | } 119 | 120 | /** 121 | * Prevent `sub` and `sup` elements from affecting the line height in 122 | * all browsers. 123 | */ 124 | 125 | sub, 126 | sup { 127 | font-size: 75%; 128 | line-height: 0; 129 | position: relative; 130 | vertical-align: baseline; 131 | } 132 | 133 | sub { 134 | bottom: -0.25em; 135 | } 136 | 137 | sup { 138 | top: -0.5em; 139 | } 140 | 141 | /* Embedded content 142 | ========================================================================== */ 143 | 144 | /** 145 | * Remove the border on images inside links in IE 10. 146 | */ 147 | 148 | img { 149 | border-style: none; 150 | } 151 | 152 | /* Forms 153 | ========================================================================== */ 154 | 155 | /** 156 | * 1. Change the font styles in all browsers. 157 | * 2. Remove the margin in Firefox and Safari. 158 | */ 159 | 160 | button, 161 | input, 162 | optgroup, 163 | select, 164 | textarea { 165 | font-family: inherit; /* 1 */ 166 | font-size: 100%; /* 1 */ 167 | line-height: 1.15; /* 1 */ 168 | margin: 0; /* 2 */ 169 | } 170 | 171 | /** 172 | * Show the overflow in IE. 173 | * 1. Show the overflow in Edge. 174 | */ 175 | 176 | button, 177 | input { 178 | /* 1 */ 179 | overflow: visible; 180 | } 181 | 182 | /** 183 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 184 | * 1. Remove the inheritance of text transform in Firefox. 185 | */ 186 | 187 | button, 188 | select { 189 | /* 1 */ 190 | text-transform: none; 191 | } 192 | 193 | /** 194 | * Correct the inability to style clickable types in iOS and Safari. 195 | */ 196 | 197 | button, 198 | [type='button'], 199 | [type='reset'], 200 | [type='submit'] { 201 | -webkit-appearance: button; 202 | } 203 | 204 | /** 205 | * Remove the inner border and padding in Firefox. 206 | */ 207 | 208 | button::-moz-focus-inner, 209 | [type='button']::-moz-focus-inner, 210 | [type='reset']::-moz-focus-inner, 211 | [type='submit']::-moz-focus-inner { 212 | border-style: none; 213 | padding: 0; 214 | } 215 | 216 | /** 217 | * Restore the focus styles unset by the previous rule. 218 | */ 219 | 220 | button:-moz-focusring, 221 | [type='button']:-moz-focusring, 222 | [type='reset']:-moz-focusring, 223 | [type='submit']:-moz-focusring { 224 | outline: 1px dotted ButtonText; 225 | } 226 | 227 | /** 228 | * Correct the padding in Firefox. 229 | */ 230 | 231 | fieldset { 232 | padding: 0.35em 0.75em 0.625em; 233 | } 234 | 235 | /** 236 | * 1. Correct the text wrapping in Edge and IE. 237 | * 2. Correct the color inheritance from `fieldset` elements in IE. 238 | * 3. Remove the padding so developers are not caught out when they zero out 239 | * `fieldset` elements in all browsers. 240 | */ 241 | 242 | legend { 243 | box-sizing: border-box; /* 1 */ 244 | color: inherit; /* 2 */ 245 | display: table; /* 1 */ 246 | max-width: 100%; /* 1 */ 247 | padding: 0; /* 3 */ 248 | white-space: normal; /* 1 */ 249 | } 250 | 251 | /** 252 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 253 | */ 254 | 255 | progress { 256 | vertical-align: baseline; 257 | } 258 | 259 | /** 260 | * Remove the default vertical scrollbar in IE 10+. 261 | */ 262 | 263 | textarea { 264 | overflow: auto; 265 | } 266 | 267 | /** 268 | * 1. Add the correct box sizing in IE 10. 269 | * 2. Remove the padding in IE 10. 270 | */ 271 | 272 | [type='checkbox'], 273 | [type='radio'] { 274 | box-sizing: border-box; /* 1 */ 275 | padding: 0; /* 2 */ 276 | } 277 | 278 | /** 279 | * Correct the cursor style of increment and decrement buttons in Chrome. 280 | */ 281 | 282 | [type='number']::-webkit-inner-spin-button, 283 | [type='number']::-webkit-outer-spin-button { 284 | height: auto; 285 | } 286 | 287 | /** 288 | * 1. Correct the odd appearance in Chrome and Safari. 289 | * 2. Correct the outline style in Safari. 290 | */ 291 | 292 | [type='search'] { 293 | -webkit-appearance: textfield; /* 1 */ 294 | outline-offset: -2px; /* 2 */ 295 | } 296 | 297 | /** 298 | * Remove the inner padding in Chrome and Safari on macOS. 299 | */ 300 | 301 | [type='search']::-webkit-search-decoration { 302 | -webkit-appearance: none; 303 | } 304 | 305 | /** 306 | * 1. Correct the inability to style clickable types in iOS and Safari. 307 | * 2. Change font properties to `inherit` in Safari. 308 | */ 309 | 310 | ::-webkit-file-upload-button { 311 | -webkit-appearance: button; /* 1 */ 312 | font: inherit; /* 2 */ 313 | } 314 | 315 | /* Interactive 316 | ========================================================================== */ 317 | 318 | /* 319 | * Add the correct display in Edge, IE 10+, and Firefox. 320 | */ 321 | 322 | details { 323 | display: block; 324 | } 325 | 326 | /* 327 | * Add the correct display in all browsers. 328 | */ 329 | 330 | summary { 331 | display: list-item; 332 | } 333 | 334 | /* Misc 335 | ========================================================================== */ 336 | 337 | /** 338 | * Add the correct display in IE 10+. 339 | */ 340 | 341 | template { 342 | display: none; 343 | } 344 | 345 | /** 346 | * Add the correct display in IE 10. 347 | */ 348 | 349 | [hidden] { 350 | display: none; 351 | } 352 | -------------------------------------------------------------------------------- /09-menu/final/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Render the `main` element consistently in IE. 29 | */ 30 | 31 | main { 32 | display: block; 33 | } 34 | 35 | /** 36 | * Correct the font size and margin on `h1` elements within `section` and 37 | * `article` contexts in Chrome, Firefox, and Safari. 38 | */ 39 | 40 | h1 { 41 | font-size: 2em; 42 | margin: 0.67em 0; 43 | } 44 | 45 | /* Grouping content 46 | ========================================================================== */ 47 | 48 | /** 49 | * 1. Add the correct box sizing in Firefox. 50 | * 2. Show the overflow in Edge and IE. 51 | */ 52 | 53 | hr { 54 | box-sizing: content-box; /* 1 */ 55 | height: 0; /* 1 */ 56 | overflow: visible; /* 2 */ 57 | } 58 | 59 | /** 60 | * 1. Correct the inheritance and scaling of font size in all browsers. 61 | * 2. Correct the odd `em` font sizing in all browsers. 62 | */ 63 | 64 | pre { 65 | font-family: monospace, monospace; /* 1 */ 66 | font-size: 1em; /* 2 */ 67 | } 68 | 69 | /* Text-level semantics 70 | ========================================================================== */ 71 | 72 | /** 73 | * Remove the gray background on active links in IE 10. 74 | */ 75 | 76 | a { 77 | background-color: transparent; 78 | } 79 | 80 | /** 81 | * 1. Remove the bottom border in Chrome 57- 82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 83 | */ 84 | 85 | abbr[title] { 86 | border-bottom: none; /* 1 */ 87 | text-decoration: underline; /* 2 */ 88 | text-decoration: underline dotted; /* 2 */ 89 | } 90 | 91 | /** 92 | * Add the correct font weight in Chrome, Edge, and Safari. 93 | */ 94 | 95 | b, 96 | strong { 97 | font-weight: bolder; 98 | } 99 | 100 | /** 101 | * 1. Correct the inheritance and scaling of font size in all browsers. 102 | * 2. Correct the odd `em` font sizing in all browsers. 103 | */ 104 | 105 | code, 106 | kbd, 107 | samp { 108 | font-family: monospace, monospace; /* 1 */ 109 | font-size: 1em; /* 2 */ 110 | } 111 | 112 | /** 113 | * Add the correct font size in all browsers. 114 | */ 115 | 116 | small { 117 | font-size: 80%; 118 | } 119 | 120 | /** 121 | * Prevent `sub` and `sup` elements from affecting the line height in 122 | * all browsers. 123 | */ 124 | 125 | sub, 126 | sup { 127 | font-size: 75%; 128 | line-height: 0; 129 | position: relative; 130 | vertical-align: baseline; 131 | } 132 | 133 | sub { 134 | bottom: -0.25em; 135 | } 136 | 137 | sup { 138 | top: -0.5em; 139 | } 140 | 141 | /* Embedded content 142 | ========================================================================== */ 143 | 144 | /** 145 | * Remove the border on images inside links in IE 10. 146 | */ 147 | 148 | img { 149 | border-style: none; 150 | } 151 | 152 | /* Forms 153 | ========================================================================== */ 154 | 155 | /** 156 | * 1. Change the font styles in all browsers. 157 | * 2. Remove the margin in Firefox and Safari. 158 | */ 159 | 160 | button, 161 | input, 162 | optgroup, 163 | select, 164 | textarea { 165 | font-family: inherit; /* 1 */ 166 | font-size: 100%; /* 1 */ 167 | line-height: 1.15; /* 1 */ 168 | margin: 0; /* 2 */ 169 | } 170 | 171 | /** 172 | * Show the overflow in IE. 173 | * 1. Show the overflow in Edge. 174 | */ 175 | 176 | button, 177 | input { 178 | /* 1 */ 179 | overflow: visible; 180 | } 181 | 182 | /** 183 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 184 | * 1. Remove the inheritance of text transform in Firefox. 185 | */ 186 | 187 | button, 188 | select { 189 | /* 1 */ 190 | text-transform: none; 191 | } 192 | 193 | /** 194 | * Correct the inability to style clickable types in iOS and Safari. 195 | */ 196 | 197 | button, 198 | [type='button'], 199 | [type='reset'], 200 | [type='submit'] { 201 | -webkit-appearance: button; 202 | } 203 | 204 | /** 205 | * Remove the inner border and padding in Firefox. 206 | */ 207 | 208 | button::-moz-focus-inner, 209 | [type='button']::-moz-focus-inner, 210 | [type='reset']::-moz-focus-inner, 211 | [type='submit']::-moz-focus-inner { 212 | border-style: none; 213 | padding: 0; 214 | } 215 | 216 | /** 217 | * Restore the focus styles unset by the previous rule. 218 | */ 219 | 220 | button:-moz-focusring, 221 | [type='button']:-moz-focusring, 222 | [type='reset']:-moz-focusring, 223 | [type='submit']:-moz-focusring { 224 | outline: 1px dotted ButtonText; 225 | } 226 | 227 | /** 228 | * Correct the padding in Firefox. 229 | */ 230 | 231 | fieldset { 232 | padding: 0.35em 0.75em 0.625em; 233 | } 234 | 235 | /** 236 | * 1. Correct the text wrapping in Edge and IE. 237 | * 2. Correct the color inheritance from `fieldset` elements in IE. 238 | * 3. Remove the padding so developers are not caught out when they zero out 239 | * `fieldset` elements in all browsers. 240 | */ 241 | 242 | legend { 243 | box-sizing: border-box; /* 1 */ 244 | color: inherit; /* 2 */ 245 | display: table; /* 1 */ 246 | max-width: 100%; /* 1 */ 247 | padding: 0; /* 3 */ 248 | white-space: normal; /* 1 */ 249 | } 250 | 251 | /** 252 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 253 | */ 254 | 255 | progress { 256 | vertical-align: baseline; 257 | } 258 | 259 | /** 260 | * Remove the default vertical scrollbar in IE 10+. 261 | */ 262 | 263 | textarea { 264 | overflow: auto; 265 | } 266 | 267 | /** 268 | * 1. Add the correct box sizing in IE 10. 269 | * 2. Remove the padding in IE 10. 270 | */ 271 | 272 | [type='checkbox'], 273 | [type='radio'] { 274 | box-sizing: border-box; /* 1 */ 275 | padding: 0; /* 2 */ 276 | } 277 | 278 | /** 279 | * Correct the cursor style of increment and decrement buttons in Chrome. 280 | */ 281 | 282 | [type='number']::-webkit-inner-spin-button, 283 | [type='number']::-webkit-outer-spin-button { 284 | height: auto; 285 | } 286 | 287 | /** 288 | * 1. Correct the odd appearance in Chrome and Safari. 289 | * 2. Correct the outline style in Safari. 290 | */ 291 | 292 | [type='search'] { 293 | -webkit-appearance: textfield; /* 1 */ 294 | outline-offset: -2px; /* 2 */ 295 | } 296 | 297 | /** 298 | * Remove the inner padding in Chrome and Safari on macOS. 299 | */ 300 | 301 | [type='search']::-webkit-search-decoration { 302 | -webkit-appearance: none; 303 | } 304 | 305 | /** 306 | * 1. Correct the inability to style clickable types in iOS and Safari. 307 | * 2. Change font properties to `inherit` in Safari. 308 | */ 309 | 310 | ::-webkit-file-upload-button { 311 | -webkit-appearance: button; /* 1 */ 312 | font: inherit; /* 2 */ 313 | } 314 | 315 | /* Interactive 316 | ========================================================================== */ 317 | 318 | /* 319 | * Add the correct display in Edge, IE 10+, and Firefox. 320 | */ 321 | 322 | details { 323 | display: block; 324 | } 325 | 326 | /* 327 | * Add the correct display in all browsers. 328 | */ 329 | 330 | summary { 331 | display: list-item; 332 | } 333 | 334 | /* Misc 335 | ========================================================================== */ 336 | 337 | /** 338 | * Add the correct display in IE 10+. 339 | */ 340 | 341 | template { 342 | display: none; 343 | } 344 | 345 | /** 346 | * Add the correct display in IE 10. 347 | */ 348 | 349 | [hidden] { 350 | display: none; 351 | } 352 | -------------------------------------------------------------------------------- /02-counter/final/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Render the `main` element consistently in IE. 29 | */ 30 | 31 | main { 32 | display: block; 33 | } 34 | 35 | /** 36 | * Correct the font size and margin on `h1` elements within `section` and 37 | * `article` contexts in Chrome, Firefox, and Safari. 38 | */ 39 | 40 | h1 { 41 | font-size: 2em; 42 | margin: 0.67em 0; 43 | } 44 | 45 | /* Grouping content 46 | ========================================================================== */ 47 | 48 | /** 49 | * 1. Add the correct box sizing in Firefox. 50 | * 2. Show the overflow in Edge and IE. 51 | */ 52 | 53 | hr { 54 | box-sizing: content-box; /* 1 */ 55 | height: 0; /* 1 */ 56 | overflow: visible; /* 2 */ 57 | } 58 | 59 | /** 60 | * 1. Correct the inheritance and scaling of font size in all browsers. 61 | * 2. Correct the odd `em` font sizing in all browsers. 62 | */ 63 | 64 | pre { 65 | font-family: monospace, monospace; /* 1 */ 66 | font-size: 1em; /* 2 */ 67 | } 68 | 69 | /* Text-level semantics 70 | ========================================================================== */ 71 | 72 | /** 73 | * Remove the gray background on active links in IE 10. 74 | */ 75 | 76 | a { 77 | background-color: transparent; 78 | } 79 | 80 | /** 81 | * 1. Remove the bottom border in Chrome 57- 82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 83 | */ 84 | 85 | abbr[title] { 86 | border-bottom: none; /* 1 */ 87 | text-decoration: underline; /* 2 */ 88 | text-decoration: underline dotted; /* 2 */ 89 | } 90 | 91 | /** 92 | * Add the correct font weight in Chrome, Edge, and Safari. 93 | */ 94 | 95 | b, 96 | strong { 97 | font-weight: bolder; 98 | } 99 | 100 | /** 101 | * 1. Correct the inheritance and scaling of font size in all browsers. 102 | * 2. Correct the odd `em` font sizing in all browsers. 103 | */ 104 | 105 | code, 106 | kbd, 107 | samp { 108 | font-family: monospace, monospace; /* 1 */ 109 | font-size: 1em; /* 2 */ 110 | } 111 | 112 | /** 113 | * Add the correct font size in all browsers. 114 | */ 115 | 116 | small { 117 | font-size: 80%; 118 | } 119 | 120 | /** 121 | * Prevent `sub` and `sup` elements from affecting the line height in 122 | * all browsers. 123 | */ 124 | 125 | sub, 126 | sup { 127 | font-size: 75%; 128 | line-height: 0; 129 | position: relative; 130 | vertical-align: baseline; 131 | } 132 | 133 | sub { 134 | bottom: -0.25em; 135 | } 136 | 137 | sup { 138 | top: -0.5em; 139 | } 140 | 141 | /* Embedded content 142 | ========================================================================== */ 143 | 144 | /** 145 | * Remove the border on images inside links in IE 10. 146 | */ 147 | 148 | img { 149 | border-style: none; 150 | } 151 | 152 | /* Forms 153 | ========================================================================== */ 154 | 155 | /** 156 | * 1. Change the font styles in all browsers. 157 | * 2. Remove the margin in Firefox and Safari. 158 | */ 159 | 160 | button, 161 | input, 162 | optgroup, 163 | select, 164 | textarea { 165 | font-family: inherit; /* 1 */ 166 | font-size: 100%; /* 1 */ 167 | line-height: 1.15; /* 1 */ 168 | margin: 0; /* 2 */ 169 | } 170 | 171 | /** 172 | * Show the overflow in IE. 173 | * 1. Show the overflow in Edge. 174 | */ 175 | 176 | button, 177 | input { 178 | /* 1 */ 179 | overflow: visible; 180 | } 181 | 182 | /** 183 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 184 | * 1. Remove the inheritance of text transform in Firefox. 185 | */ 186 | 187 | button, 188 | select { 189 | /* 1 */ 190 | text-transform: none; 191 | } 192 | 193 | /** 194 | * Correct the inability to style clickable types in iOS and Safari. 195 | */ 196 | 197 | button, 198 | [type='button'], 199 | [type='reset'], 200 | [type='submit'] { 201 | -webkit-appearance: button; 202 | } 203 | 204 | /** 205 | * Remove the inner border and padding in Firefox. 206 | */ 207 | 208 | button::-moz-focus-inner, 209 | [type='button']::-moz-focus-inner, 210 | [type='reset']::-moz-focus-inner, 211 | [type='submit']::-moz-focus-inner { 212 | border-style: none; 213 | padding: 0; 214 | } 215 | 216 | /** 217 | * Restore the focus styles unset by the previous rule. 218 | */ 219 | 220 | button:-moz-focusring, 221 | [type='button']:-moz-focusring, 222 | [type='reset']:-moz-focusring, 223 | [type='submit']:-moz-focusring { 224 | outline: 1px dotted ButtonText; 225 | } 226 | 227 | /** 228 | * Correct the padding in Firefox. 229 | */ 230 | 231 | fieldset { 232 | padding: 0.35em 0.75em 0.625em; 233 | } 234 | 235 | /** 236 | * 1. Correct the text wrapping in Edge and IE. 237 | * 2. Correct the color inheritance from `fieldset` elements in IE. 238 | * 3. Remove the padding so developers are not caught out when they zero out 239 | * `fieldset` elements in all browsers. 240 | */ 241 | 242 | legend { 243 | box-sizing: border-box; /* 1 */ 244 | color: inherit; /* 2 */ 245 | display: table; /* 1 */ 246 | max-width: 100%; /* 1 */ 247 | padding: 0; /* 3 */ 248 | white-space: normal; /* 1 */ 249 | } 250 | 251 | /** 252 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 253 | */ 254 | 255 | progress { 256 | vertical-align: baseline; 257 | } 258 | 259 | /** 260 | * Remove the default vertical scrollbar in IE 10+. 261 | */ 262 | 263 | textarea { 264 | overflow: auto; 265 | } 266 | 267 | /** 268 | * 1. Add the correct box sizing in IE 10. 269 | * 2. Remove the padding in IE 10. 270 | */ 271 | 272 | [type='checkbox'], 273 | [type='radio'] { 274 | box-sizing: border-box; /* 1 */ 275 | padding: 0; /* 2 */ 276 | } 277 | 278 | /** 279 | * Correct the cursor style of increment and decrement buttons in Chrome. 280 | */ 281 | 282 | [type='number']::-webkit-inner-spin-button, 283 | [type='number']::-webkit-outer-spin-button { 284 | height: auto; 285 | } 286 | 287 | /** 288 | * 1. Correct the odd appearance in Chrome and Safari. 289 | * 2. Correct the outline style in Safari. 290 | */ 291 | 292 | [type='search'] { 293 | -webkit-appearance: textfield; /* 1 */ 294 | outline-offset: -2px; /* 2 */ 295 | } 296 | 297 | /** 298 | * Remove the inner padding in Chrome and Safari on macOS. 299 | */ 300 | 301 | [type='search']::-webkit-search-decoration { 302 | -webkit-appearance: none; 303 | } 304 | 305 | /** 306 | * 1. Correct the inability to style clickable types in iOS and Safari. 307 | * 2. Change font properties to `inherit` in Safari. 308 | */ 309 | 310 | ::-webkit-file-upload-button { 311 | -webkit-appearance: button; /* 1 */ 312 | font: inherit; /* 2 */ 313 | } 314 | 315 | /* Interactive 316 | ========================================================================== */ 317 | 318 | /* 319 | * Add the correct display in Edge, IE 10+, and Firefox. 320 | */ 321 | 322 | details { 323 | display: block; 324 | } 325 | 326 | /* 327 | * Add the correct display in all browsers. 328 | */ 329 | 330 | summary { 331 | display: list-item; 332 | } 333 | 334 | /* Misc 335 | ========================================================================== */ 336 | 337 | /** 338 | * Add the correct display in IE 10+. 339 | */ 340 | 341 | template { 342 | display: none; 343 | } 344 | 345 | /** 346 | * Add the correct display in IE 10. 347 | */ 348 | 349 | [hidden] { 350 | display: none; 351 | } 352 | -------------------------------------------------------------------------------- /02-counter/starter/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Render the `main` element consistently in IE. 29 | */ 30 | 31 | main { 32 | display: block; 33 | } 34 | 35 | /** 36 | * Correct the font size and margin on `h1` elements within `section` and 37 | * `article` contexts in Chrome, Firefox, and Safari. 38 | */ 39 | 40 | h1 { 41 | font-size: 2em; 42 | margin: 0.67em 0; 43 | } 44 | 45 | /* Grouping content 46 | ========================================================================== */ 47 | 48 | /** 49 | * 1. Add the correct box sizing in Firefox. 50 | * 2. Show the overflow in Edge and IE. 51 | */ 52 | 53 | hr { 54 | box-sizing: content-box; /* 1 */ 55 | height: 0; /* 1 */ 56 | overflow: visible; /* 2 */ 57 | } 58 | 59 | /** 60 | * 1. Correct the inheritance and scaling of font size in all browsers. 61 | * 2. Correct the odd `em` font sizing in all browsers. 62 | */ 63 | 64 | pre { 65 | font-family: monospace, monospace; /* 1 */ 66 | font-size: 1em; /* 2 */ 67 | } 68 | 69 | /* Text-level semantics 70 | ========================================================================== */ 71 | 72 | /** 73 | * Remove the gray background on active links in IE 10. 74 | */ 75 | 76 | a { 77 | background-color: transparent; 78 | } 79 | 80 | /** 81 | * 1. Remove the bottom border in Chrome 57- 82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 83 | */ 84 | 85 | abbr[title] { 86 | border-bottom: none; /* 1 */ 87 | text-decoration: underline; /* 2 */ 88 | text-decoration: underline dotted; /* 2 */ 89 | } 90 | 91 | /** 92 | * Add the correct font weight in Chrome, Edge, and Safari. 93 | */ 94 | 95 | b, 96 | strong { 97 | font-weight: bolder; 98 | } 99 | 100 | /** 101 | * 1. Correct the inheritance and scaling of font size in all browsers. 102 | * 2. Correct the odd `em` font sizing in all browsers. 103 | */ 104 | 105 | code, 106 | kbd, 107 | samp { 108 | font-family: monospace, monospace; /* 1 */ 109 | font-size: 1em; /* 2 */ 110 | } 111 | 112 | /** 113 | * Add the correct font size in all browsers. 114 | */ 115 | 116 | small { 117 | font-size: 80%; 118 | } 119 | 120 | /** 121 | * Prevent `sub` and `sup` elements from affecting the line height in 122 | * all browsers. 123 | */ 124 | 125 | sub, 126 | sup { 127 | font-size: 75%; 128 | line-height: 0; 129 | position: relative; 130 | vertical-align: baseline; 131 | } 132 | 133 | sub { 134 | bottom: -0.25em; 135 | } 136 | 137 | sup { 138 | top: -0.5em; 139 | } 140 | 141 | /* Embedded content 142 | ========================================================================== */ 143 | 144 | /** 145 | * Remove the border on images inside links in IE 10. 146 | */ 147 | 148 | img { 149 | border-style: none; 150 | } 151 | 152 | /* Forms 153 | ========================================================================== */ 154 | 155 | /** 156 | * 1. Change the font styles in all browsers. 157 | * 2. Remove the margin in Firefox and Safari. 158 | */ 159 | 160 | button, 161 | input, 162 | optgroup, 163 | select, 164 | textarea { 165 | font-family: inherit; /* 1 */ 166 | font-size: 100%; /* 1 */ 167 | line-height: 1.15; /* 1 */ 168 | margin: 0; /* 2 */ 169 | } 170 | 171 | /** 172 | * Show the overflow in IE. 173 | * 1. Show the overflow in Edge. 174 | */ 175 | 176 | button, 177 | input { 178 | /* 1 */ 179 | overflow: visible; 180 | } 181 | 182 | /** 183 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 184 | * 1. Remove the inheritance of text transform in Firefox. 185 | */ 186 | 187 | button, 188 | select { 189 | /* 1 */ 190 | text-transform: none; 191 | } 192 | 193 | /** 194 | * Correct the inability to style clickable types in iOS and Safari. 195 | */ 196 | 197 | button, 198 | [type='button'], 199 | [type='reset'], 200 | [type='submit'] { 201 | -webkit-appearance: button; 202 | } 203 | 204 | /** 205 | * Remove the inner border and padding in Firefox. 206 | */ 207 | 208 | button::-moz-focus-inner, 209 | [type='button']::-moz-focus-inner, 210 | [type='reset']::-moz-focus-inner, 211 | [type='submit']::-moz-focus-inner { 212 | border-style: none; 213 | padding: 0; 214 | } 215 | 216 | /** 217 | * Restore the focus styles unset by the previous rule. 218 | */ 219 | 220 | button:-moz-focusring, 221 | [type='button']:-moz-focusring, 222 | [type='reset']:-moz-focusring, 223 | [type='submit']:-moz-focusring { 224 | outline: 1px dotted ButtonText; 225 | } 226 | 227 | /** 228 | * Correct the padding in Firefox. 229 | */ 230 | 231 | fieldset { 232 | padding: 0.35em 0.75em 0.625em; 233 | } 234 | 235 | /** 236 | * 1. Correct the text wrapping in Edge and IE. 237 | * 2. Correct the color inheritance from `fieldset` elements in IE. 238 | * 3. Remove the padding so developers are not caught out when they zero out 239 | * `fieldset` elements in all browsers. 240 | */ 241 | 242 | legend { 243 | box-sizing: border-box; /* 1 */ 244 | color: inherit; /* 2 */ 245 | display: table; /* 1 */ 246 | max-width: 100%; /* 1 */ 247 | padding: 0; /* 3 */ 248 | white-space: normal; /* 1 */ 249 | } 250 | 251 | /** 252 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 253 | */ 254 | 255 | progress { 256 | vertical-align: baseline; 257 | } 258 | 259 | /** 260 | * Remove the default vertical scrollbar in IE 10+. 261 | */ 262 | 263 | textarea { 264 | overflow: auto; 265 | } 266 | 267 | /** 268 | * 1. Add the correct box sizing in IE 10. 269 | * 2. Remove the padding in IE 10. 270 | */ 271 | 272 | [type='checkbox'], 273 | [type='radio'] { 274 | box-sizing: border-box; /* 1 */ 275 | padding: 0; /* 2 */ 276 | } 277 | 278 | /** 279 | * Correct the cursor style of increment and decrement buttons in Chrome. 280 | */ 281 | 282 | [type='number']::-webkit-inner-spin-button, 283 | [type='number']::-webkit-outer-spin-button { 284 | height: auto; 285 | } 286 | 287 | /** 288 | * 1. Correct the odd appearance in Chrome and Safari. 289 | * 2. Correct the outline style in Safari. 290 | */ 291 | 292 | [type='search'] { 293 | -webkit-appearance: textfield; /* 1 */ 294 | outline-offset: -2px; /* 2 */ 295 | } 296 | 297 | /** 298 | * Remove the inner padding in Chrome and Safari on macOS. 299 | */ 300 | 301 | [type='search']::-webkit-search-decoration { 302 | -webkit-appearance: none; 303 | } 304 | 305 | /** 306 | * 1. Correct the inability to style clickable types in iOS and Safari. 307 | * 2. Change font properties to `inherit` in Safari. 308 | */ 309 | 310 | ::-webkit-file-upload-button { 311 | -webkit-appearance: button; /* 1 */ 312 | font: inherit; /* 2 */ 313 | } 314 | 315 | /* Interactive 316 | ========================================================================== */ 317 | 318 | /* 319 | * Add the correct display in Edge, IE 10+, and Firefox. 320 | */ 321 | 322 | details { 323 | display: block; 324 | } 325 | 326 | /* 327 | * Add the correct display in all browsers. 328 | */ 329 | 330 | summary { 331 | display: list-item; 332 | } 333 | 334 | /* Misc 335 | ========================================================================== */ 336 | 337 | /** 338 | * Add the correct display in IE 10+. 339 | */ 340 | 341 | template { 342 | display: none; 343 | } 344 | 345 | /** 346 | * Add the correct display in IE 10. 347 | */ 348 | 349 | [hidden] { 350 | display: none; 351 | } 352 | -------------------------------------------------------------------------------- /04-reviews/final/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Render the `main` element consistently in IE. 29 | */ 30 | 31 | main { 32 | display: block; 33 | } 34 | 35 | /** 36 | * Correct the font size and margin on `h1` elements within `section` and 37 | * `article` contexts in Chrome, Firefox, and Safari. 38 | */ 39 | 40 | h1 { 41 | font-size: 2em; 42 | margin: 0.67em 0; 43 | } 44 | 45 | /* Grouping content 46 | ========================================================================== */ 47 | 48 | /** 49 | * 1. Add the correct box sizing in Firefox. 50 | * 2. Show the overflow in Edge and IE. 51 | */ 52 | 53 | hr { 54 | box-sizing: content-box; /* 1 */ 55 | height: 0; /* 1 */ 56 | overflow: visible; /* 2 */ 57 | } 58 | 59 | /** 60 | * 1. Correct the inheritance and scaling of font size in all browsers. 61 | * 2. Correct the odd `em` font sizing in all browsers. 62 | */ 63 | 64 | pre { 65 | font-family: monospace, monospace; /* 1 */ 66 | font-size: 1em; /* 2 */ 67 | } 68 | 69 | /* Text-level semantics 70 | ========================================================================== */ 71 | 72 | /** 73 | * Remove the gray background on active links in IE 10. 74 | */ 75 | 76 | a { 77 | background-color: transparent; 78 | } 79 | 80 | /** 81 | * 1. Remove the bottom border in Chrome 57- 82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 83 | */ 84 | 85 | abbr[title] { 86 | border-bottom: none; /* 1 */ 87 | text-decoration: underline; /* 2 */ 88 | text-decoration: underline dotted; /* 2 */ 89 | } 90 | 91 | /** 92 | * Add the correct font weight in Chrome, Edge, and Safari. 93 | */ 94 | 95 | b, 96 | strong { 97 | font-weight: bolder; 98 | } 99 | 100 | /** 101 | * 1. Correct the inheritance and scaling of font size in all browsers. 102 | * 2. Correct the odd `em` font sizing in all browsers. 103 | */ 104 | 105 | code, 106 | kbd, 107 | samp { 108 | font-family: monospace, monospace; /* 1 */ 109 | font-size: 1em; /* 2 */ 110 | } 111 | 112 | /** 113 | * Add the correct font size in all browsers. 114 | */ 115 | 116 | small { 117 | font-size: 80%; 118 | } 119 | 120 | /** 121 | * Prevent `sub` and `sup` elements from affecting the line height in 122 | * all browsers. 123 | */ 124 | 125 | sub, 126 | sup { 127 | font-size: 75%; 128 | line-height: 0; 129 | position: relative; 130 | vertical-align: baseline; 131 | } 132 | 133 | sub { 134 | bottom: -0.25em; 135 | } 136 | 137 | sup { 138 | top: -0.5em; 139 | } 140 | 141 | /* Embedded content 142 | ========================================================================== */ 143 | 144 | /** 145 | * Remove the border on images inside links in IE 10. 146 | */ 147 | 148 | img { 149 | border-style: none; 150 | } 151 | 152 | /* Forms 153 | ========================================================================== */ 154 | 155 | /** 156 | * 1. Change the font styles in all browsers. 157 | * 2. Remove the margin in Firefox and Safari. 158 | */ 159 | 160 | button, 161 | input, 162 | optgroup, 163 | select, 164 | textarea { 165 | font-family: inherit; /* 1 */ 166 | font-size: 100%; /* 1 */ 167 | line-height: 1.15; /* 1 */ 168 | margin: 0; /* 2 */ 169 | } 170 | 171 | /** 172 | * Show the overflow in IE. 173 | * 1. Show the overflow in Edge. 174 | */ 175 | 176 | button, 177 | input { 178 | /* 1 */ 179 | overflow: visible; 180 | } 181 | 182 | /** 183 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 184 | * 1. Remove the inheritance of text transform in Firefox. 185 | */ 186 | 187 | button, 188 | select { 189 | /* 1 */ 190 | text-transform: none; 191 | } 192 | 193 | /** 194 | * Correct the inability to style clickable types in iOS and Safari. 195 | */ 196 | 197 | button, 198 | [type='button'], 199 | [type='reset'], 200 | [type='submit'] { 201 | -webkit-appearance: button; 202 | } 203 | 204 | /** 205 | * Remove the inner border and padding in Firefox. 206 | */ 207 | 208 | button::-moz-focus-inner, 209 | [type='button']::-moz-focus-inner, 210 | [type='reset']::-moz-focus-inner, 211 | [type='submit']::-moz-focus-inner { 212 | border-style: none; 213 | padding: 0; 214 | } 215 | 216 | /** 217 | * Restore the focus styles unset by the previous rule. 218 | */ 219 | 220 | button:-moz-focusring, 221 | [type='button']:-moz-focusring, 222 | [type='reset']:-moz-focusring, 223 | [type='submit']:-moz-focusring { 224 | outline: 1px dotted ButtonText; 225 | } 226 | 227 | /** 228 | * Correct the padding in Firefox. 229 | */ 230 | 231 | fieldset { 232 | padding: 0.35em 0.75em 0.625em; 233 | } 234 | 235 | /** 236 | * 1. Correct the text wrapping in Edge and IE. 237 | * 2. Correct the color inheritance from `fieldset` elements in IE. 238 | * 3. Remove the padding so developers are not caught out when they zero out 239 | * `fieldset` elements in all browsers. 240 | */ 241 | 242 | legend { 243 | box-sizing: border-box; /* 1 */ 244 | color: inherit; /* 2 */ 245 | display: table; /* 1 */ 246 | max-width: 100%; /* 1 */ 247 | padding: 0; /* 3 */ 248 | white-space: normal; /* 1 */ 249 | } 250 | 251 | /** 252 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 253 | */ 254 | 255 | progress { 256 | vertical-align: baseline; 257 | } 258 | 259 | /** 260 | * Remove the default vertical scrollbar in IE 10+. 261 | */ 262 | 263 | textarea { 264 | overflow: auto; 265 | } 266 | 267 | /** 268 | * 1. Add the correct box sizing in IE 10. 269 | * 2. Remove the padding in IE 10. 270 | */ 271 | 272 | [type='checkbox'], 273 | [type='radio'] { 274 | box-sizing: border-box; /* 1 */ 275 | padding: 0; /* 2 */ 276 | } 277 | 278 | /** 279 | * Correct the cursor style of increment and decrement buttons in Chrome. 280 | */ 281 | 282 | [type='number']::-webkit-inner-spin-button, 283 | [type='number']::-webkit-outer-spin-button { 284 | height: auto; 285 | } 286 | 287 | /** 288 | * 1. Correct the odd appearance in Chrome and Safari. 289 | * 2. Correct the outline style in Safari. 290 | */ 291 | 292 | [type='search'] { 293 | -webkit-appearance: textfield; /* 1 */ 294 | outline-offset: -2px; /* 2 */ 295 | } 296 | 297 | /** 298 | * Remove the inner padding in Chrome and Safari on macOS. 299 | */ 300 | 301 | [type='search']::-webkit-search-decoration { 302 | -webkit-appearance: none; 303 | } 304 | 305 | /** 306 | * 1. Correct the inability to style clickable types in iOS and Safari. 307 | * 2. Change font properties to `inherit` in Safari. 308 | */ 309 | 310 | ::-webkit-file-upload-button { 311 | -webkit-appearance: button; /* 1 */ 312 | font: inherit; /* 2 */ 313 | } 314 | 315 | /* Interactive 316 | ========================================================================== */ 317 | 318 | /* 319 | * Add the correct display in Edge, IE 10+, and Firefox. 320 | */ 321 | 322 | details { 323 | display: block; 324 | } 325 | 326 | /* 327 | * Add the correct display in all browsers. 328 | */ 329 | 330 | summary { 331 | display: list-item; 332 | } 333 | 334 | /* Misc 335 | ========================================================================== */ 336 | 337 | /** 338 | * Add the correct display in IE 10+. 339 | */ 340 | 341 | template { 342 | display: none; 343 | } 344 | 345 | /** 346 | * Add the correct display in IE 10. 347 | */ 348 | 349 | [hidden] { 350 | display: none; 351 | } 352 | -------------------------------------------------------------------------------- /04-reviews/starter/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Render the `main` element consistently in IE. 29 | */ 30 | 31 | main { 32 | display: block; 33 | } 34 | 35 | /** 36 | * Correct the font size and margin on `h1` elements within `section` and 37 | * `article` contexts in Chrome, Firefox, and Safari. 38 | */ 39 | 40 | h1 { 41 | font-size: 2em; 42 | margin: 0.67em 0; 43 | } 44 | 45 | /* Grouping content 46 | ========================================================================== */ 47 | 48 | /** 49 | * 1. Add the correct box sizing in Firefox. 50 | * 2. Show the overflow in Edge and IE. 51 | */ 52 | 53 | hr { 54 | box-sizing: content-box; /* 1 */ 55 | height: 0; /* 1 */ 56 | overflow: visible; /* 2 */ 57 | } 58 | 59 | /** 60 | * 1. Correct the inheritance and scaling of font size in all browsers. 61 | * 2. Correct the odd `em` font sizing in all browsers. 62 | */ 63 | 64 | pre { 65 | font-family: monospace, monospace; /* 1 */ 66 | font-size: 1em; /* 2 */ 67 | } 68 | 69 | /* Text-level semantics 70 | ========================================================================== */ 71 | 72 | /** 73 | * Remove the gray background on active links in IE 10. 74 | */ 75 | 76 | a { 77 | background-color: transparent; 78 | } 79 | 80 | /** 81 | * 1. Remove the bottom border in Chrome 57- 82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 83 | */ 84 | 85 | abbr[title] { 86 | border-bottom: none; /* 1 */ 87 | text-decoration: underline; /* 2 */ 88 | text-decoration: underline dotted; /* 2 */ 89 | } 90 | 91 | /** 92 | * Add the correct font weight in Chrome, Edge, and Safari. 93 | */ 94 | 95 | b, 96 | strong { 97 | font-weight: bolder; 98 | } 99 | 100 | /** 101 | * 1. Correct the inheritance and scaling of font size in all browsers. 102 | * 2. Correct the odd `em` font sizing in all browsers. 103 | */ 104 | 105 | code, 106 | kbd, 107 | samp { 108 | font-family: monospace, monospace; /* 1 */ 109 | font-size: 1em; /* 2 */ 110 | } 111 | 112 | /** 113 | * Add the correct font size in all browsers. 114 | */ 115 | 116 | small { 117 | font-size: 80%; 118 | } 119 | 120 | /** 121 | * Prevent `sub` and `sup` elements from affecting the line height in 122 | * all browsers. 123 | */ 124 | 125 | sub, 126 | sup { 127 | font-size: 75%; 128 | line-height: 0; 129 | position: relative; 130 | vertical-align: baseline; 131 | } 132 | 133 | sub { 134 | bottom: -0.25em; 135 | } 136 | 137 | sup { 138 | top: -0.5em; 139 | } 140 | 141 | /* Embedded content 142 | ========================================================================== */ 143 | 144 | /** 145 | * Remove the border on images inside links in IE 10. 146 | */ 147 | 148 | img { 149 | border-style: none; 150 | } 151 | 152 | /* Forms 153 | ========================================================================== */ 154 | 155 | /** 156 | * 1. Change the font styles in all browsers. 157 | * 2. Remove the margin in Firefox and Safari. 158 | */ 159 | 160 | button, 161 | input, 162 | optgroup, 163 | select, 164 | textarea { 165 | font-family: inherit; /* 1 */ 166 | font-size: 100%; /* 1 */ 167 | line-height: 1.15; /* 1 */ 168 | margin: 0; /* 2 */ 169 | } 170 | 171 | /** 172 | * Show the overflow in IE. 173 | * 1. Show the overflow in Edge. 174 | */ 175 | 176 | button, 177 | input { 178 | /* 1 */ 179 | overflow: visible; 180 | } 181 | 182 | /** 183 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 184 | * 1. Remove the inheritance of text transform in Firefox. 185 | */ 186 | 187 | button, 188 | select { 189 | /* 1 */ 190 | text-transform: none; 191 | } 192 | 193 | /** 194 | * Correct the inability to style clickable types in iOS and Safari. 195 | */ 196 | 197 | button, 198 | [type='button'], 199 | [type='reset'], 200 | [type='submit'] { 201 | -webkit-appearance: button; 202 | } 203 | 204 | /** 205 | * Remove the inner border and padding in Firefox. 206 | */ 207 | 208 | button::-moz-focus-inner, 209 | [type='button']::-moz-focus-inner, 210 | [type='reset']::-moz-focus-inner, 211 | [type='submit']::-moz-focus-inner { 212 | border-style: none; 213 | padding: 0; 214 | } 215 | 216 | /** 217 | * Restore the focus styles unset by the previous rule. 218 | */ 219 | 220 | button:-moz-focusring, 221 | [type='button']:-moz-focusring, 222 | [type='reset']:-moz-focusring, 223 | [type='submit']:-moz-focusring { 224 | outline: 1px dotted ButtonText; 225 | } 226 | 227 | /** 228 | * Correct the padding in Firefox. 229 | */ 230 | 231 | fieldset { 232 | padding: 0.35em 0.75em 0.625em; 233 | } 234 | 235 | /** 236 | * 1. Correct the text wrapping in Edge and IE. 237 | * 2. Correct the color inheritance from `fieldset` elements in IE. 238 | * 3. Remove the padding so developers are not caught out when they zero out 239 | * `fieldset` elements in all browsers. 240 | */ 241 | 242 | legend { 243 | box-sizing: border-box; /* 1 */ 244 | color: inherit; /* 2 */ 245 | display: table; /* 1 */ 246 | max-width: 100%; /* 1 */ 247 | padding: 0; /* 3 */ 248 | white-space: normal; /* 1 */ 249 | } 250 | 251 | /** 252 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 253 | */ 254 | 255 | progress { 256 | vertical-align: baseline; 257 | } 258 | 259 | /** 260 | * Remove the default vertical scrollbar in IE 10+. 261 | */ 262 | 263 | textarea { 264 | overflow: auto; 265 | } 266 | 267 | /** 268 | * 1. Add the correct box sizing in IE 10. 269 | * 2. Remove the padding in IE 10. 270 | */ 271 | 272 | [type='checkbox'], 273 | [type='radio'] { 274 | box-sizing: border-box; /* 1 */ 275 | padding: 0; /* 2 */ 276 | } 277 | 278 | /** 279 | * Correct the cursor style of increment and decrement buttons in Chrome. 280 | */ 281 | 282 | [type='number']::-webkit-inner-spin-button, 283 | [type='number']::-webkit-outer-spin-button { 284 | height: auto; 285 | } 286 | 287 | /** 288 | * 1. Correct the odd appearance in Chrome and Safari. 289 | * 2. Correct the outline style in Safari. 290 | */ 291 | 292 | [type='search'] { 293 | -webkit-appearance: textfield; /* 1 */ 294 | outline-offset: -2px; /* 2 */ 295 | } 296 | 297 | /** 298 | * Remove the inner padding in Chrome and Safari on macOS. 299 | */ 300 | 301 | [type='search']::-webkit-search-decoration { 302 | -webkit-appearance: none; 303 | } 304 | 305 | /** 306 | * 1. Correct the inability to style clickable types in iOS and Safari. 307 | * 2. Change font properties to `inherit` in Safari. 308 | */ 309 | 310 | ::-webkit-file-upload-button { 311 | -webkit-appearance: button; /* 1 */ 312 | font: inherit; /* 2 */ 313 | } 314 | 315 | /* Interactive 316 | ========================================================================== */ 317 | 318 | /* 319 | * Add the correct display in Edge, IE 10+, and Firefox. 320 | */ 321 | 322 | details { 323 | display: block; 324 | } 325 | 326 | /* 327 | * Add the correct display in all browsers. 328 | */ 329 | 330 | summary { 331 | display: list-item; 332 | } 333 | 334 | /* Misc 335 | ========================================================================== */ 336 | 337 | /** 338 | * Add the correct display in IE 10+. 339 | */ 340 | 341 | template { 342 | display: none; 343 | } 344 | 345 | /** 346 | * Add the correct display in IE 10. 347 | */ 348 | 349 | [hidden] { 350 | display: none; 351 | } 352 | -------------------------------------------------------------------------------- /05-navbar/final/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Render the `main` element consistently in IE. 29 | */ 30 | 31 | main { 32 | display: block; 33 | } 34 | 35 | /** 36 | * Correct the font size and margin on `h1` elements within `section` and 37 | * `article` contexts in Chrome, Firefox, and Safari. 38 | */ 39 | 40 | h1 { 41 | font-size: 2em; 42 | margin: 0.67em 0; 43 | } 44 | 45 | /* Grouping content 46 | ========================================================================== */ 47 | 48 | /** 49 | * 1. Add the correct box sizing in Firefox. 50 | * 2. Show the overflow in Edge and IE. 51 | */ 52 | 53 | hr { 54 | box-sizing: content-box; /* 1 */ 55 | height: 0; /* 1 */ 56 | overflow: visible; /* 2 */ 57 | } 58 | 59 | /** 60 | * 1. Correct the inheritance and scaling of font size in all browsers. 61 | * 2. Correct the odd `em` font sizing in all browsers. 62 | */ 63 | 64 | pre { 65 | font-family: monospace, monospace; /* 1 */ 66 | font-size: 1em; /* 2 */ 67 | } 68 | 69 | /* Text-level semantics 70 | ========================================================================== */ 71 | 72 | /** 73 | * Remove the gray background on active links in IE 10. 74 | */ 75 | 76 | a { 77 | background-color: transparent; 78 | } 79 | 80 | /** 81 | * 1. Remove the bottom border in Chrome 57- 82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 83 | */ 84 | 85 | abbr[title] { 86 | border-bottom: none; /* 1 */ 87 | text-decoration: underline; /* 2 */ 88 | text-decoration: underline dotted; /* 2 */ 89 | } 90 | 91 | /** 92 | * Add the correct font weight in Chrome, Edge, and Safari. 93 | */ 94 | 95 | b, 96 | strong { 97 | font-weight: bolder; 98 | } 99 | 100 | /** 101 | * 1. Correct the inheritance and scaling of font size in all browsers. 102 | * 2. Correct the odd `em` font sizing in all browsers. 103 | */ 104 | 105 | code, 106 | kbd, 107 | samp { 108 | font-family: monospace, monospace; /* 1 */ 109 | font-size: 1em; /* 2 */ 110 | } 111 | 112 | /** 113 | * Add the correct font size in all browsers. 114 | */ 115 | 116 | small { 117 | font-size: 80%; 118 | } 119 | 120 | /** 121 | * Prevent `sub` and `sup` elements from affecting the line height in 122 | * all browsers. 123 | */ 124 | 125 | sub, 126 | sup { 127 | font-size: 75%; 128 | line-height: 0; 129 | position: relative; 130 | vertical-align: baseline; 131 | } 132 | 133 | sub { 134 | bottom: -0.25em; 135 | } 136 | 137 | sup { 138 | top: -0.5em; 139 | } 140 | 141 | /* Embedded content 142 | ========================================================================== */ 143 | 144 | /** 145 | * Remove the border on images inside links in IE 10. 146 | */ 147 | 148 | img { 149 | border-style: none; 150 | } 151 | 152 | /* Forms 153 | ========================================================================== */ 154 | 155 | /** 156 | * 1. Change the font styles in all browsers. 157 | * 2. Remove the margin in Firefox and Safari. 158 | */ 159 | 160 | button, 161 | input, 162 | optgroup, 163 | select, 164 | textarea { 165 | font-family: inherit; /* 1 */ 166 | font-size: 100%; /* 1 */ 167 | line-height: 1.15; /* 1 */ 168 | margin: 0; /* 2 */ 169 | } 170 | 171 | /** 172 | * Show the overflow in IE. 173 | * 1. Show the overflow in Edge. 174 | */ 175 | 176 | button, 177 | input { 178 | /* 1 */ 179 | overflow: visible; 180 | } 181 | 182 | /** 183 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 184 | * 1. Remove the inheritance of text transform in Firefox. 185 | */ 186 | 187 | button, 188 | select { 189 | /* 1 */ 190 | text-transform: none; 191 | } 192 | 193 | /** 194 | * Correct the inability to style clickable types in iOS and Safari. 195 | */ 196 | 197 | button, 198 | [type='button'], 199 | [type='reset'], 200 | [type='submit'] { 201 | -webkit-appearance: button; 202 | } 203 | 204 | /** 205 | * Remove the inner border and padding in Firefox. 206 | */ 207 | 208 | button::-moz-focus-inner, 209 | [type='button']::-moz-focus-inner, 210 | [type='reset']::-moz-focus-inner, 211 | [type='submit']::-moz-focus-inner { 212 | border-style: none; 213 | padding: 0; 214 | } 215 | 216 | /** 217 | * Restore the focus styles unset by the previous rule. 218 | */ 219 | 220 | button:-moz-focusring, 221 | [type='button']:-moz-focusring, 222 | [type='reset']:-moz-focusring, 223 | [type='submit']:-moz-focusring { 224 | outline: 1px dotted ButtonText; 225 | } 226 | 227 | /** 228 | * Correct the padding in Firefox. 229 | */ 230 | 231 | fieldset { 232 | padding: 0.35em 0.75em 0.625em; 233 | } 234 | 235 | /** 236 | * 1. Correct the text wrapping in Edge and IE. 237 | * 2. Correct the color inheritance from `fieldset` elements in IE. 238 | * 3. Remove the padding so developers are not caught out when they zero out 239 | * `fieldset` elements in all browsers. 240 | */ 241 | 242 | legend { 243 | box-sizing: border-box; /* 1 */ 244 | color: inherit; /* 2 */ 245 | display: table; /* 1 */ 246 | max-width: 100%; /* 1 */ 247 | padding: 0; /* 3 */ 248 | white-space: normal; /* 1 */ 249 | } 250 | 251 | /** 252 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 253 | */ 254 | 255 | progress { 256 | vertical-align: baseline; 257 | } 258 | 259 | /** 260 | * Remove the default vertical scrollbar in IE 10+. 261 | */ 262 | 263 | textarea { 264 | overflow: auto; 265 | } 266 | 267 | /** 268 | * 1. Add the correct box sizing in IE 10. 269 | * 2. Remove the padding in IE 10. 270 | */ 271 | 272 | [type='checkbox'], 273 | [type='radio'] { 274 | box-sizing: border-box; /* 1 */ 275 | padding: 0; /* 2 */ 276 | } 277 | 278 | /** 279 | * Correct the cursor style of increment and decrement buttons in Chrome. 280 | */ 281 | 282 | [type='number']::-webkit-inner-spin-button, 283 | [type='number']::-webkit-outer-spin-button { 284 | height: auto; 285 | } 286 | 287 | /** 288 | * 1. Correct the odd appearance in Chrome and Safari. 289 | * 2. Correct the outline style in Safari. 290 | */ 291 | 292 | [type='search'] { 293 | -webkit-appearance: textfield; /* 1 */ 294 | outline-offset: -2px; /* 2 */ 295 | } 296 | 297 | /** 298 | * Remove the inner padding in Chrome and Safari on macOS. 299 | */ 300 | 301 | [type='search']::-webkit-search-decoration { 302 | -webkit-appearance: none; 303 | } 304 | 305 | /** 306 | * 1. Correct the inability to style clickable types in iOS and Safari. 307 | * 2. Change font properties to `inherit` in Safari. 308 | */ 309 | 310 | ::-webkit-file-upload-button { 311 | -webkit-appearance: button; /* 1 */ 312 | font: inherit; /* 2 */ 313 | } 314 | 315 | /* Interactive 316 | ========================================================================== */ 317 | 318 | /* 319 | * Add the correct display in Edge, IE 10+, and Firefox. 320 | */ 321 | 322 | details { 323 | display: block; 324 | } 325 | 326 | /* 327 | * Add the correct display in all browsers. 328 | */ 329 | 330 | summary { 331 | display: list-item; 332 | } 333 | 334 | /* Misc 335 | ========================================================================== */ 336 | 337 | /** 338 | * Add the correct display in IE 10+. 339 | */ 340 | 341 | template { 342 | display: none; 343 | } 344 | 345 | /** 346 | * Add the correct display in IE 10. 347 | */ 348 | 349 | [hidden] { 350 | display: none; 351 | } 352 | -------------------------------------------------------------------------------- /05-navbar/starter/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Render the `main` element consistently in IE. 29 | */ 30 | 31 | main { 32 | display: block; 33 | } 34 | 35 | /** 36 | * Correct the font size and margin on `h1` elements within `section` and 37 | * `article` contexts in Chrome, Firefox, and Safari. 38 | */ 39 | 40 | h1 { 41 | font-size: 2em; 42 | margin: 0.67em 0; 43 | } 44 | 45 | /* Grouping content 46 | ========================================================================== */ 47 | 48 | /** 49 | * 1. Add the correct box sizing in Firefox. 50 | * 2. Show the overflow in Edge and IE. 51 | */ 52 | 53 | hr { 54 | box-sizing: content-box; /* 1 */ 55 | height: 0; /* 1 */ 56 | overflow: visible; /* 2 */ 57 | } 58 | 59 | /** 60 | * 1. Correct the inheritance and scaling of font size in all browsers. 61 | * 2. Correct the odd `em` font sizing in all browsers. 62 | */ 63 | 64 | pre { 65 | font-family: monospace, monospace; /* 1 */ 66 | font-size: 1em; /* 2 */ 67 | } 68 | 69 | /* Text-level semantics 70 | ========================================================================== */ 71 | 72 | /** 73 | * Remove the gray background on active links in IE 10. 74 | */ 75 | 76 | a { 77 | background-color: transparent; 78 | } 79 | 80 | /** 81 | * 1. Remove the bottom border in Chrome 57- 82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 83 | */ 84 | 85 | abbr[title] { 86 | border-bottom: none; /* 1 */ 87 | text-decoration: underline; /* 2 */ 88 | text-decoration: underline dotted; /* 2 */ 89 | } 90 | 91 | /** 92 | * Add the correct font weight in Chrome, Edge, and Safari. 93 | */ 94 | 95 | b, 96 | strong { 97 | font-weight: bolder; 98 | } 99 | 100 | /** 101 | * 1. Correct the inheritance and scaling of font size in all browsers. 102 | * 2. Correct the odd `em` font sizing in all browsers. 103 | */ 104 | 105 | code, 106 | kbd, 107 | samp { 108 | font-family: monospace, monospace; /* 1 */ 109 | font-size: 1em; /* 2 */ 110 | } 111 | 112 | /** 113 | * Add the correct font size in all browsers. 114 | */ 115 | 116 | small { 117 | font-size: 80%; 118 | } 119 | 120 | /** 121 | * Prevent `sub` and `sup` elements from affecting the line height in 122 | * all browsers. 123 | */ 124 | 125 | sub, 126 | sup { 127 | font-size: 75%; 128 | line-height: 0; 129 | position: relative; 130 | vertical-align: baseline; 131 | } 132 | 133 | sub { 134 | bottom: -0.25em; 135 | } 136 | 137 | sup { 138 | top: -0.5em; 139 | } 140 | 141 | /* Embedded content 142 | ========================================================================== */ 143 | 144 | /** 145 | * Remove the border on images inside links in IE 10. 146 | */ 147 | 148 | img { 149 | border-style: none; 150 | } 151 | 152 | /* Forms 153 | ========================================================================== */ 154 | 155 | /** 156 | * 1. Change the font styles in all browsers. 157 | * 2. Remove the margin in Firefox and Safari. 158 | */ 159 | 160 | button, 161 | input, 162 | optgroup, 163 | select, 164 | textarea { 165 | font-family: inherit; /* 1 */ 166 | font-size: 100%; /* 1 */ 167 | line-height: 1.15; /* 1 */ 168 | margin: 0; /* 2 */ 169 | } 170 | 171 | /** 172 | * Show the overflow in IE. 173 | * 1. Show the overflow in Edge. 174 | */ 175 | 176 | button, 177 | input { 178 | /* 1 */ 179 | overflow: visible; 180 | } 181 | 182 | /** 183 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 184 | * 1. Remove the inheritance of text transform in Firefox. 185 | */ 186 | 187 | button, 188 | select { 189 | /* 1 */ 190 | text-transform: none; 191 | } 192 | 193 | /** 194 | * Correct the inability to style clickable types in iOS and Safari. 195 | */ 196 | 197 | button, 198 | [type='button'], 199 | [type='reset'], 200 | [type='submit'] { 201 | -webkit-appearance: button; 202 | } 203 | 204 | /** 205 | * Remove the inner border and padding in Firefox. 206 | */ 207 | 208 | button::-moz-focus-inner, 209 | [type='button']::-moz-focus-inner, 210 | [type='reset']::-moz-focus-inner, 211 | [type='submit']::-moz-focus-inner { 212 | border-style: none; 213 | padding: 0; 214 | } 215 | 216 | /** 217 | * Restore the focus styles unset by the previous rule. 218 | */ 219 | 220 | button:-moz-focusring, 221 | [type='button']:-moz-focusring, 222 | [type='reset']:-moz-focusring, 223 | [type='submit']:-moz-focusring { 224 | outline: 1px dotted ButtonText; 225 | } 226 | 227 | /** 228 | * Correct the padding in Firefox. 229 | */ 230 | 231 | fieldset { 232 | padding: 0.35em 0.75em 0.625em; 233 | } 234 | 235 | /** 236 | * 1. Correct the text wrapping in Edge and IE. 237 | * 2. Correct the color inheritance from `fieldset` elements in IE. 238 | * 3. Remove the padding so developers are not caught out when they zero out 239 | * `fieldset` elements in all browsers. 240 | */ 241 | 242 | legend { 243 | box-sizing: border-box; /* 1 */ 244 | color: inherit; /* 2 */ 245 | display: table; /* 1 */ 246 | max-width: 100%; /* 1 */ 247 | padding: 0; /* 3 */ 248 | white-space: normal; /* 1 */ 249 | } 250 | 251 | /** 252 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 253 | */ 254 | 255 | progress { 256 | vertical-align: baseline; 257 | } 258 | 259 | /** 260 | * Remove the default vertical scrollbar in IE 10+. 261 | */ 262 | 263 | textarea { 264 | overflow: auto; 265 | } 266 | 267 | /** 268 | * 1. Add the correct box sizing in IE 10. 269 | * 2. Remove the padding in IE 10. 270 | */ 271 | 272 | [type='checkbox'], 273 | [type='radio'] { 274 | box-sizing: border-box; /* 1 */ 275 | padding: 0; /* 2 */ 276 | } 277 | 278 | /** 279 | * Correct the cursor style of increment and decrement buttons in Chrome. 280 | */ 281 | 282 | [type='number']::-webkit-inner-spin-button, 283 | [type='number']::-webkit-outer-spin-button { 284 | height: auto; 285 | } 286 | 287 | /** 288 | * 1. Correct the odd appearance in Chrome and Safari. 289 | * 2. Correct the outline style in Safari. 290 | */ 291 | 292 | [type='search'] { 293 | -webkit-appearance: textfield; /* 1 */ 294 | outline-offset: -2px; /* 2 */ 295 | } 296 | 297 | /** 298 | * Remove the inner padding in Chrome and Safari on macOS. 299 | */ 300 | 301 | [type='search']::-webkit-search-decoration { 302 | -webkit-appearance: none; 303 | } 304 | 305 | /** 306 | * 1. Correct the inability to style clickable types in iOS and Safari. 307 | * 2. Change font properties to `inherit` in Safari. 308 | */ 309 | 310 | ::-webkit-file-upload-button { 311 | -webkit-appearance: button; /* 1 */ 312 | font: inherit; /* 2 */ 313 | } 314 | 315 | /* Interactive 316 | ========================================================================== */ 317 | 318 | /* 319 | * Add the correct display in Edge, IE 10+, and Firefox. 320 | */ 321 | 322 | details { 323 | display: block; 324 | } 325 | 326 | /* 327 | * Add the correct display in all browsers. 328 | */ 329 | 330 | summary { 331 | display: list-item; 332 | } 333 | 334 | /* Misc 335 | ========================================================================== */ 336 | 337 | /** 338 | * Add the correct display in IE 10+. 339 | */ 340 | 341 | template { 342 | display: none; 343 | } 344 | 345 | /** 346 | * Add the correct display in IE 10. 347 | */ 348 | 349 | [hidden] { 350 | display: none; 351 | } 352 | --------------------------------------------------------------------------------