├── episode-1 ├── index.html └── style.css ├── episode-2 ├── index.html └── style.css ├── episode-3 ├── index.html └── style.css ├── episode-4 ├── index.html └── style.css ├── episode-5 ├── alternate.html ├── index.html └── style.css ├── episode-6 ├── index.html └── style.css ├── episode-7 ├── index.html └── style.css └── episode-8 ├── index.html └── style.css /episode-1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 |

Flex This

11 | 12 | 13 | -------------------------------------------------------------------------------- /episode-1/style.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | height: 100%; 3 | } 4 | 5 | body { 6 | background: #00b1b3; 7 | font-family: sans-serif; 8 | display: flex; 9 | align-items: center; 10 | justify-content: center; 11 | } -------------------------------------------------------------------------------- /episode-2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /episode-2/style.css: -------------------------------------------------------------------------------- 1 | body, html { 2 | height: 100%; 3 | } 4 | 5 | body { 6 | display: flex; 7 | align-items: center; 8 | justify-content: center; 9 | font-size: 16px; 10 | font-family: sans-serif; 11 | margin: 0; 12 | } 13 | 14 | nav { 15 | background: #f9f9f9; 16 | width: 100%; 17 | } 18 | 19 | nav > ul { 20 | margin: 0; 21 | padding: 0; 22 | display: flex; 23 | justify-content: space-around; 24 | list-style: none; 25 | } 26 | 27 | .nav-item { 28 | padding: 3em; 29 | } -------------------------------------------------------------------------------- /episode-3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 |
11 | 12 |
13 |

Laracasts

14 |
15 | 16 |
17 | 29 | 30 |
31 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

32 | 33 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

34 | 35 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

36 |
37 |
38 | 39 | 43 |
44 | 45 | 46 | -------------------------------------------------------------------------------- /episode-3/style.css: -------------------------------------------------------------------------------- 1 | body, html { 2 | height: 100%; 3 | } 4 | 5 | body { 6 | margin: 0; 7 | font-family: sans-serif; 8 | } 9 | 10 | header, footer { 11 | background: #c5c5c5; 12 | } 13 | 14 | .container { 15 | max-width: 1000px; 16 | min-height: 100%; 17 | margin: auto; 18 | display: flex; 19 | flex-direction: column; 20 | justify-content: space-between; 21 | } 22 | 23 | .container > * { 24 | padding: 0 20px; 25 | } 26 | 27 | main { 28 | display: flex; 29 | margin-bottom: auto; 30 | } 31 | 32 | @media screen and (max-width: 768px) { 33 | main { 34 | flex-direction: column-reverse; 35 | 36 | } 37 | } 38 | 39 | main aside { 40 | margin-right: 40px; 41 | } 42 | -------------------------------------------------------------------------------- /episode-4/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 | 11 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /episode-4/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | } 5 | 6 | body, html { 7 | height: 100%; 8 | font-family: sans-serif; 9 | } 10 | 11 | body { 12 | display: flex; 13 | align-items: center; 14 | justify-content: center; 15 | } 16 | 17 | .episode-list { 18 | max-width: 300px; 19 | } 20 | 21 | .episode-list-item { 22 | display: flex; 23 | align-items: center; 24 | justify-content: space-between; 25 | border-bottom: 1px dashed #cecece; 26 | padding: 10px 0; 27 | } 28 | 29 | .episode-list-item.is-current i { 30 | padding-right: 1em; 31 | color: #cecece; 32 | } 33 | 34 | .episode-list-item .position { 35 | color: #00B1B4; 36 | font-weight: bold; 37 | } 38 | 39 | .episode-list-item .title { 40 | margin-right: auto; 41 | padding-left: 1em; 42 | padding-right: 1em; 43 | } 44 | 45 | .episode-list-item .title a { 46 | color: inherit; 47 | text-decoration: none; 48 | } 49 | 50 | .episode-list-item .title a:hover { 51 | text-decoration: underline; 52 | } -------------------------------------------------------------------------------- /episode-5/alternate.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | 14 |
15 | 16 |
17 |
18 | 19 | 20 |
21 | 22 | 23 |
24 |
25 |
26 |
27 | 28 | 29 | -------------------------------------------------------------------------------- /episode-5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | 14 |
15 | 16 |
17 |

John Doe

18 | 19 |

20 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 21 |

22 |
23 |
24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /episode-5/style.css: -------------------------------------------------------------------------------- 1 | h4 { 2 | margin: 0; 3 | } 4 | 5 | body, html { 6 | height: 100%; 7 | } 8 | 9 | body { 10 | font-family: sans-serif; 11 | max-width: 500px; 12 | margin: auto; 13 | display: flex; 14 | align-items: center; 15 | justify-content: center; 16 | } 17 | 18 | .box { 19 | border: 1px solid #cecece; 20 | padding: 20px; 21 | } 22 | 23 | .media { 24 | display: flex; 25 | width: 100%; 26 | } 27 | 28 | .media-left { 29 | margin-right: 1em; 30 | } 31 | 32 | .media-content { 33 | flex: 1; 34 | } 35 | 36 | .media-content-buttons { 37 | text-align: right; 38 | } 39 | 40 | .media-content textarea { 41 | width: 100%; 42 | min-height: 100px; 43 | padding: 0; 44 | border-color: #cecece; 45 | } -------------------------------------------------------------------------------- /episode-6/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 |
11 | 12 |
13 |
14 |
Hello World
15 |
16 | 17 |
18 |
Hello World
19 |
20 | 21 |
22 |
Buttons
23 |
24 |
25 | 26 |
27 |
28 |
Hello World
29 |
30 | 31 |
32 |
Hello World
33 |
34 | 35 |
36 |
Hello World
37 |
38 | 39 |
40 |
Hello World
41 |
42 | 43 |
44 | 45 |
46 | 47 | 48 | -------------------------------------------------------------------------------- /episode-6/style.css: -------------------------------------------------------------------------------- 1 | .box { 2 | padding: 20px; 3 | border: 1px solid #ddd; 4 | } 5 | 6 | .container { 7 | width: 1000px; 8 | margin: auto; 9 | } 10 | 11 | .columns { 12 | display: flex; 13 | 14 | /* Offset the 10px worth of padding on each column. */ 15 | margin: -10px -10px 0 -10px; 16 | } 17 | 18 | .columns:not(:last-child) { 19 | margin-bottom: 20px; 20 | } 21 | 22 | .columns.is-multiline { 23 | flex-wrap: wrap; 24 | } 25 | 26 | .column { 27 | flex: 1; 28 | padding: 10px; 29 | } 30 | 31 | .column.is-narrow { 32 | flex: none; 33 | } 34 | 35 | /* Rinse and repeat for is-1 .. is-11 */ 36 | .column.is-2 { 37 | width: 16.66667%; 38 | flex: none; 39 | } 40 | 41 | .column.is-4 { 42 | width: 33.33333% 43 | flex: none; 44 | } 45 | 46 | .column.is-6 { 47 | width: 50%; 48 | flex: none; 49 | } 50 | 51 | -------------------------------------------------------------------------------- /episode-7/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 | 11 | 12 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /episode-7/style.css: -------------------------------------------------------------------------------- 1 | * { margin: 0; padding: 0; } 2 | 3 | body { font-family: sans-serif; } 4 | 5 | nav { 6 | display: flex; 7 | justify-content: space-between; 8 | background: #00b1b3; 9 | padding: 1em; 10 | } 11 | 12 | @media screen and (max-width: 767px) { 13 | nav { 14 | display: block; 15 | } 16 | 17 | nav a { 18 | display: block; 19 | } 20 | } 21 | 22 | .nav-item { 23 | color: white; 24 | padding: 0 1em; 25 | text-decoration: none; 26 | } 27 | 28 | .nav-item:hover { 29 | text-decoration: underline; 30 | } 31 | 32 | .nav-item > i { 33 | color: #005152; 34 | padding-right: 6px; 35 | } -------------------------------------------------------------------------------- /episode-8/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 |
27 |
28 | 29 | -------------------------------------------------------------------------------- /episode-8/style.css: -------------------------------------------------------------------------------- 1 | * { margin: 0; padding: 0; } 2 | 3 | html, body { 4 | height: 100%; 5 | } 6 | 7 | body { 8 | display: flex; 9 | align-items: center; 10 | justify-content: center; 11 | font-family: sans-serif; 12 | } 13 | 14 | .box { 15 | padding: 20px; 16 | border: 1px solid #e3e3e3; 17 | width: 700px; 18 | } 19 | 20 | .control:not(:last-child) { 21 | margin-bottom: 1em; 22 | } 23 | 24 | .control.has-addon { 25 | display: flex; 26 | } 27 | 28 | .control.has-addon .control-field { 29 | flex: 1; 30 | border: 1px solid #e3e3e3; 31 | } 32 | 33 | .control.has-addon .control-field:focus { 34 | outline: 0; 35 | border: 1px solid #00b1b3; 36 | border-right: none; 37 | } 38 | 39 | .control.has-addon .control-field:focus + .control-addon { 40 | border: 1px solid #00b1b3; 41 | border-left: none; 42 | animation: fadeColor 2s; 43 | animation-iteration-count: infinite; 44 | } 45 | 46 | .control.has-addon .control-addon { 47 | background: #e3e3e3; 48 | min-width: 25px; 49 | text-align: center; 50 | } 51 | 52 | .control > * { 53 | padding: .8em; 54 | } 55 | 56 | @keyframes fadeColor { 57 | 50% { 58 | color: #026c6d; 59 | } 60 | } 61 | --------------------------------------------------------------------------------