├── .gitignore ├── LICENSE ├── README.md ├── assets ├── css │ ├── normalize.css │ ├── normalize │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── normalize.css │ │ └── package.json │ ├── style-artigo.css │ └── style.css └── images │ ├── logo-webschool.png │ ├── webschool-site-01.png │ ├── webschool-site-02.png │ ├── webschool-site-03.png │ └── webschool-site-04.png ├── index-artigo.html ├── index-bemean.com.br.html ├── index.html └── videos.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 18 | .grunt 19 | 20 | # node-waf configuration 21 | .lock-wscript 22 | 23 | # Compiled binary addons (http://nodejs.org/api/addons.html) 24 | build/Release 25 | 26 | # Dependency directory 27 | node_modules 28 | 29 | # Optional npm cache directory 30 | .npm 31 | 32 | # Optional REPL history 33 | .node_repl_history 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Webschool.io Site 2 | 3 | Iremos desenvolver uma página simples apenas para mostrar os vídeos do [Be MEAN](), para isso usaremos o Atomic Design para criar os componentes visuais. 4 | 5 | Caso você não tenha lido nada, ainda, sobre Atomic Design saiba que ele é uma metolodologia para criação de componentes visuais para sistemas web, é dividido em 5 etapas: 6 | 7 | - Átomos 8 | - Moléculas 9 | - Organismos 10 | - Templates 11 | - Pages 12 | 13 | As 3 primeiras são as etapas de estilização, então vamos iniciar nossa jornada no mundo da química 14 | 15 | ## Átomos 16 | 17 | - logo 18 | - titulo-curso 19 | - titulo-modulo 20 | - titulo-aula 21 | - video 22 | - slides 23 | - apostila 24 | 25 | ## Moléculas 26 | 27 | - aula 28 | + titulo-aula 29 | + video 30 | + slides 31 | + apostila 32 | - modulo 33 | + titulo-modulo 34 | + aulas 35 | 36 | ## Organismos 37 | 38 | - cursos 39 | + titulo-curso 40 | + modulos 41 | 42 | ## Estilizando 43 | 44 | Primeiramente devemos estilizar os átomos como sendo a base de tudo, para isso vamos definir regras bem simples para que sigam um padrão de cores e tamanhos e principalmente sua **responsividade**. 45 | 46 | ```css 47 | .atom-logo { 48 | display: block; 49 | width: 20%; 50 | max-width: 30%; 51 | margin: 0 auto; 52 | } 53 | .atom-titulo-curso { 54 | color: #1437DE; 55 | font-size: 2.2rem; 56 | } 57 | .atom-titulo-modulo { 58 | color: #1437DE; 59 | font-size: 1.8rem; 60 | } 61 | .atom-titulo-aula { 62 | color: #1437DE; 63 | font-size: 1.4rem; 64 | } 65 | .atom-video { 66 | display: block; 67 | margin: 1em auto; 68 | width: 90%; 69 | } 70 | .atom-slides { 71 | color: #666; 72 | font-size: 1.8rem; 73 | font-weight: bold; 74 | text-decoration: underline; 75 | } 76 | .atom-apostila { 77 | color: #666; 78 | font-size: 1.8rem; 79 | font-weight: bold; 80 | text-decoration: underline; 81 | } 82 | ``` 83 | 84 | Depois de definido os átomos vamos criar a estrutura do HTML pois dessa forma fica mais fácil visualizar os componentes do que apenas no CSS. 85 | 86 | ```html 87 | 88 | 89 |
90 |

Be MEAN

91 |
92 | ``` 93 | 94 | O código acima é o nível mais alto da nossa hierarquia, logo você deve se perguntar: 95 | 96 | > Ué mas átomo no mesmo nível do organismo? 97 | 98 | **Exatamente!** Porque no Atomic Design o átomo é a menor parte **independente** dos componentes, logo a `img` com o `atom-logo` pode estar em qualquer sozinho, porém para agrupar mais átomos precisamos criar uma molécula: 99 | 100 | 101 | ```html 102 | 103 | 104 |
105 |

Be MEAN

106 | 107 |
108 |

MongoDB

109 | 110 |
111 |
112 | ``` 113 | 114 | Percebeu que os títulos, nesse layout, são todos átomos pois não os agrupamos com `hgroup`. 115 | 116 | Entrando um pouco mais na nossa química dos estilos iremos criar uma reação entre 2 moléculas: 117 | 118 | 119 | ```html 120 | 121 | 122 |
123 |

Be MEAN

124 | 125 |
126 |

MongoDB

127 | 128 |
129 |

Aula 1

130 | 131 |
132 | 133 |
134 |
135 | ``` 136 | 137 | **Percebeu que colocamos 1 molécula dentro de outra?** 138 | 139 | ```html 140 |
141 |

MongoDB

142 | 143 |
144 |

Aula 1

145 | 146 |
147 |
148 | ``` 149 | 150 | Pense como sendo uma reação química de absorção. 151 | 152 | > Absorção na química é um fenômeno ou processo físico ou químico em que átomos, moléculas ou íons introduzem-se em alguma outra fase, normalmente mais massiva, e fixam-se. O processo pode se dar pela fixação de um gás por um sólido ou um líquido, ou a fixação de um líquido por um sólido. 153 | A substância absorvida se infiltra na substância que absorve, diferentemente da adsorção, já que espécies químicas submetidas a absorção são absorvidas pelo volume, não pela superfície (como no caso de adsorção). 154 | 155 | *fonte: [https://pt.wikipedia.org/wiki/Absor%C3%A7%C3%A3o_(qu%C3%ADmica)](https://pt.wikipedia.org/wiki/Absor%C3%A7%C3%A3o_(qu%C3%ADmica))* 156 | 157 | Nesse caso a molécula absorvida foi `molecule-aula`, agora finalizamos com seus átomos internos já que essa é nossa menor molécula: 158 | 159 | 160 | ```html 161 |
162 |

Aula 1

163 | 164 |
165 | 166 |
167 | 168 |
169 | Slides 170 | Apostila 171 |
172 |
173 | ``` 174 | 175 | Deixando nosso HTML assim: 176 | 177 | ```html 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | Webschool.io 186 | 187 | 188 | 189 | 190 |
191 |

Be MEAN

192 | 193 |
194 |

MongoDB

195 | 196 |
197 |

Aula 1

198 | 199 |
200 | 201 |
202 | 203 |
204 | Slides 205 | Apostila 206 |
207 |
208 | 209 |
210 |
211 | 212 | 213 | ``` 214 | 215 | ![](./assets/images/webschool-site-01.png) 216 | 217 | Após essas 3 etapas (Átomo, Molécula e Organismo) iremos definir o Template, essa é a etapa onde posicionamos nossos elementos. 218 | 219 | Vamos iniciar centralizando o conteúdo principal, o logo já foi previamente centralizado no padrão do seu átomo. 220 | 221 | ```css 222 | .organism-cursos { 223 | text-align: center; 224 | margin: 0 auto; 225 | } 226 | ``` 227 | 228 | ![](./assets/images/webschool-site-02.png) 229 | 230 | Agora vamos dar os retoques finais como *font*, *margins* e afins. 231 | 232 | Adicionei a *font* [Permanent Marker](https://fonts.googleapis.com/css?family=Permanent+Marker) e mudei a cor do título do curso para amarelo, e os outros títulos para preto, porém não podemos mais modificar os átomos. 233 | 234 | ![](./assets/images/webschool-site-03.png) 235 | 236 | **Então como devemos fazer?** 237 | 238 | Você conhece algo chamado [Precedência de seletores](http://intentor.com.br/precedencia-de-seletores-css/)? 239 | 240 | Basicamente é um conjunto de regras que definem o **peso** de seletores css, para aplicar essas regras iremos utilizar o Cálculo de precedência que separa os seletores em 3 categorias: 241 | 242 | - x: quantidade de seletores do tipo id existentes na regra CSS; 243 | - y: quantidade de seletores do tipo classe ou pseudoclasse; 244 | - z: quantidade de seletores do tipo HTML; 245 | 246 | Onde a fórmula para calcular o peso é: 247 | 248 | ``` 249 | (x,y,z) 250 | 251 | x > y > z 252 | ``` 253 | 254 | Vamos entender com o nosso exemplo: 255 | 256 | 257 | ```css 258 | .atom-titulo-curso { 259 | font-family: 'Permanent Marker', cursive; 260 | font-size: 5rem; 261 | } 262 | ``` 263 | 264 | (0,1,0) 265 | 266 | ```css 267 | .organism-cursos .atom-titulo-curso { 268 | color: #FFCA00; 269 | } 270 | ``` 271 | 272 | (0,2,0) 273 | 274 | 275 | Ou seja eu aumento o valor do seletor `.organism-cursos .atom-titulo-curso` por utilizar 2 classes, claramente você percebe que qualquer seletor com ID(#) terá precêdencia sobre todos. 276 | 277 | Agora siga meu pensamento: 278 | 279 | > O seletor com ID tem maior peso, logo seu estilo sempre será o último a ser lido. 280 | 281 | Isso não te lembra uma outra funcionalidade do CSS? Algo bem importante?? 282 | 283 | Agora ficou fácil né!!! 284 | 285 | Sim. O `!important`. 286 | 287 | Então reguarde seus IDs para estilos que precisem se sobrepor ao padrões definidos anteriormente. 288 | 289 | Sabendo disso entendemos como modificar o átomo apenas quando o mesmo se encontra em uma molécula, possibilitando assim que os átomos nunca sejam modificados diretamente. 290 | 291 | Isso me lembrou do [Princípio da incerteza de Heisenberg](https://pt.wikipedia.org/wiki/Princ%C3%ADpio_da_incerteza_de_Heisenberg), porém ele é para elétrons. 292 | 293 | Agora vamos ver o porquê essa forma faz sentido e é facilmente reusável. 294 | 295 | Hora de adicionr mais um curso na Webschool.io, vamos pegar a primeira aula do [Curso de PHP](https://github.com/Webschool-io/Curso-PHP-Completo), basta duplicar o código do curso e mudar os textos e o vídeo, ficando assim: 296 | 297 | 298 | ```html 299 |
300 |

Be MEAN

301 | 302 |
303 |

MongoDB

304 | 305 |
306 |

Aula 1

307 | 308 |
309 | 310 |
311 | 312 |
313 | Slides 314 | Apostila 315 |
316 |
317 | 318 |
319 | 320 |

Curso PHP

321 | 322 |
323 |

Íntrodução

324 | 325 |
326 |

Aula 1

327 | 328 |
329 | 330 |
331 | 332 |
333 | Slides 334 | Apostila 335 |
336 |
337 | 338 |
339 |
340 | ``` 341 | 342 | Percebeu que se não separarmos os cursos, futuramente, o código pode ficar muito confuso e difícil de manter, para sanar esse provável problema precisamos encapsular cada curso, pois o mesmo pode ter dezenas de módulos onde cada módulo pode ter dezenas de aulas. 343 | 344 | Vish. 345 | 346 | 347 | ```html 348 |
349 | 350 |
> 351 |

Be MEAN

352 |
353 |

MongoDB

354 |
355 |

Aula 1

356 |
357 | 358 |
359 |
360 | Slides 361 | Apostila 362 |
363 | 364 |
365 |
366 |
367 | 368 |
> 369 |

Curso PHP

370 |
371 |

Íntrodução

372 |
373 |

Aula 1

374 |
375 | 376 |
377 |
378 | Slides 379 | Apostila 380 |
381 |
382 |
383 |
384 | 385 |
386 | ``` 387 | 388 | Esse encapsulamento me lembrou as [Buckyballs (Fulereno)](https://pt.wikipedia.org/wiki/Fulereno) 389 | 390 | > Como exemplo, os metalofulerenos consistem em fulerenos contendo um átomo de metal encapsulado no interior de sua estrutura. 391 | 392 | Viu que não estou inventando os paranaues químicos né? 393 | 394 | As moléculas são muito versáteis, podendo ser pequenas como da água ou gigante como dos polímeros. 395 | 396 | Voltando ao código, você deve ter notado que coloquei IDs nas moléculas dos cursos, isso devido o CSS não possibiltar o `extend` dos códigos, pois se usarmos qualquer pré-processador o ID seria a a classe e essa classe estaria extendendo classe `molecule-curso`. 397 | 398 | Como são quase 10 da manhã e eu comecei esse texto depois das 5 da manhã, estou com preguiça e deixarei com ID mesmo, no módulo de Frontend do Be MEAN passaremos esse código para Stylus. 399 | 400 | O CSS está assim: 401 | 402 | ```css 403 | body { 404 | font-size: 14px; 405 | } 406 | .atom-logo { 407 | display: block; 408 | width: 20%; 409 | max-width: 30%; 410 | margin: 0 auto; 411 | } 412 | .atom-titulo-curso { 413 | font-family: 'Permanent Marker', cursive; 414 | font-size: 5rem; 415 | margin: 0; 416 | } 417 | .atom-titulo-modulo { 418 | color: #1437DE; 419 | font-family: 'Roboto', sans-serif; 420 | font-size: 3rem; 421 | margin: 0; 422 | } 423 | .atom-titulo-aula { 424 | color: #1437DE; 425 | font-family: 'Arial', sans-serif; 426 | font-size: 1.8rem; 427 | } 428 | .atom-video { 429 | display: block; 430 | margin: 1em auto; 431 | width: 90%; 432 | } 433 | .atom-slides { 434 | color: #666; 435 | font-size: 1.8rem; 436 | font-weight: bold; 437 | text-decoration: underline; 438 | } 439 | .atom-apostila { 440 | color: #666; 441 | font-size: 1.8rem; 442 | font-weight: bold; 443 | text-decoration: underline; 444 | } 445 | 446 | .molecule-curso { 447 | border-bottom: 1px solid #ccc; 448 | margin-bottom: 4rem; 449 | padding-bottom: 4rem; 450 | } 451 | 452 | .organism-cursos { 453 | text-align: center; 454 | margin: 0 auto; 455 | width: 90%; 456 | } 457 | 458 | .organism-cursos .atom-titulo-curso { 459 | color: #FFCA00; 460 | } 461 | .organism-cursos .atom-titulo-modulo, 462 | .organism-cursos .atom-titulo-aula { 463 | color: #000; 464 | } 465 | .organism-cursos .atom-slides, 466 | .organism-cursos .atom-apostila { 467 | color: #FFCA00; 468 | } 469 | 470 | #molecule-curso-php .atom-titulo-curso { 471 | font-family: 'Alfa Slab One', cursive; 472 | color: #FF4800; 473 | } 474 | ``` 475 | 476 | Adicionei um separador entre os cursos aqui: 477 | 478 | ```css 479 | .molecule-curso { 480 | border-bottom: 1px solid #ccc; 481 | margin-bottom: 4rem; 482 | padding-bottom: 4rem; 483 | } 484 | ``` 485 | 486 | -------------------------------------------------------------------------------- /assets/css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS and IE text size adjust after device orientation change, 6 | * without disabling user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 29 | * and Firefox. 30 | * Correct `block` display not defined for `main` in IE 11. 31 | */ 32 | 33 | article, 34 | aside, 35 | details, 36 | figcaption, 37 | figure, 38 | footer, 39 | header, 40 | hgroup, 41 | main, 42 | menu, 43 | nav, 44 | section, 45 | summary { 46 | display: block; 47 | } 48 | 49 | /** 50 | * 1. Correct `inline-block` display not defined in IE 8/9. 51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 52 | */ 53 | 54 | audio, 55 | canvas, 56 | progress, 57 | video { 58 | display: inline-block; /* 1 */ 59 | vertical-align: baseline; /* 2 */ 60 | } 61 | 62 | /** 63 | * Prevent modern browsers from displaying `audio` without controls. 64 | * Remove excess height in iOS 5 devices. 65 | */ 66 | 67 | audio:not([controls]) { 68 | display: none; 69 | height: 0; 70 | } 71 | 72 | /** 73 | * Address `[hidden]` styling not present in IE 8/9/10. 74 | * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. 75 | */ 76 | 77 | [hidden], 78 | template { 79 | display: none; 80 | } 81 | 82 | /* Links 83 | ========================================================================== */ 84 | 85 | /** 86 | * Remove the gray background color from active links in IE 10. 87 | */ 88 | 89 | a { 90 | background-color: transparent; 91 | } 92 | 93 | /** 94 | * Improve readability of focused elements when they are also in an 95 | * active/hover state. 96 | */ 97 | 98 | a:active, 99 | a:hover { 100 | outline: 0; 101 | } 102 | 103 | /* Text-level semantics 104 | ========================================================================== */ 105 | 106 | /** 107 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 108 | */ 109 | 110 | abbr[title] { 111 | border-bottom: 1px dotted; 112 | } 113 | 114 | /** 115 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 116 | */ 117 | 118 | b, 119 | strong { 120 | font-weight: bold; 121 | } 122 | 123 | /** 124 | * Address styling not present in Safari and Chrome. 125 | */ 126 | 127 | dfn { 128 | font-style: italic; 129 | } 130 | 131 | /** 132 | * Address variable `h1` font-size and margin within `section` and `article` 133 | * contexts in Firefox 4+, Safari, and Chrome. 134 | */ 135 | 136 | h1 { 137 | font-size: 2em; 138 | margin: 0.67em 0; 139 | } 140 | 141 | /** 142 | * Address styling not present in IE 8/9. 143 | */ 144 | 145 | mark { 146 | background: #ff0; 147 | color: #000; 148 | } 149 | 150 | /** 151 | * Address inconsistent and variable font size in all browsers. 152 | */ 153 | 154 | small { 155 | font-size: 80%; 156 | } 157 | 158 | /** 159 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 160 | */ 161 | 162 | sub, 163 | sup { 164 | font-size: 75%; 165 | line-height: 0; 166 | position: relative; 167 | vertical-align: baseline; 168 | } 169 | 170 | sup { 171 | top: -0.5em; 172 | } 173 | 174 | sub { 175 | bottom: -0.25em; 176 | } 177 | 178 | /* Embedded content 179 | ========================================================================== */ 180 | 181 | /** 182 | * Remove border when inside `a` element in IE 8/9/10. 183 | */ 184 | 185 | img { 186 | border: 0; 187 | } 188 | 189 | /** 190 | * Correct overflow not hidden in IE 9/10/11. 191 | */ 192 | 193 | svg:not(:root) { 194 | overflow: hidden; 195 | } 196 | 197 | /* Grouping content 198 | ========================================================================== */ 199 | 200 | /** 201 | * Address margin not present in IE 8/9 and Safari. 202 | */ 203 | 204 | figure { 205 | margin: 1em 40px; 206 | } 207 | 208 | /** 209 | * Address differences between Firefox and other browsers. 210 | */ 211 | 212 | hr { 213 | box-sizing: content-box; 214 | height: 0; 215 | } 216 | 217 | /** 218 | * Contain overflow in all browsers. 219 | */ 220 | 221 | pre { 222 | overflow: auto; 223 | } 224 | 225 | /** 226 | * Address odd `em`-unit font size rendering in all browsers. 227 | */ 228 | 229 | code, 230 | kbd, 231 | pre, 232 | samp { 233 | font-family: monospace, monospace; 234 | font-size: 1em; 235 | } 236 | 237 | /* Forms 238 | ========================================================================== */ 239 | 240 | /** 241 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 242 | * styling of `select`, unless a `border` property is set. 243 | */ 244 | 245 | /** 246 | * 1. Correct color not being inherited. 247 | * Known issue: affects color of disabled elements. 248 | * 2. Correct font properties not being inherited. 249 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 250 | */ 251 | 252 | button, 253 | input, 254 | optgroup, 255 | select, 256 | textarea { 257 | color: inherit; /* 1 */ 258 | font: inherit; /* 2 */ 259 | margin: 0; /* 3 */ 260 | } 261 | 262 | /** 263 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 264 | */ 265 | 266 | button { 267 | overflow: visible; 268 | } 269 | 270 | /** 271 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 272 | * All other form control elements do not inherit `text-transform` values. 273 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 274 | * Correct `select` style inheritance in Firefox. 275 | */ 276 | 277 | button, 278 | select { 279 | text-transform: none; 280 | } 281 | 282 | /** 283 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 284 | * and `video` controls. 285 | * 2. Correct inability to style clickable `input` types in iOS. 286 | * 3. Improve usability and consistency of cursor style between image-type 287 | * `input` and others. 288 | */ 289 | 290 | button, 291 | html input[type="button"], /* 1 */ 292 | input[type="reset"], 293 | input[type="submit"] { 294 | -webkit-appearance: button; /* 2 */ 295 | cursor: pointer; /* 3 */ 296 | } 297 | 298 | /** 299 | * Re-set default cursor for disabled elements. 300 | */ 301 | 302 | button[disabled], 303 | html input[disabled] { 304 | cursor: default; 305 | } 306 | 307 | /** 308 | * Remove inner padding and border in Firefox 4+. 309 | */ 310 | 311 | button::-moz-focus-inner, 312 | input::-moz-focus-inner { 313 | border: 0; 314 | padding: 0; 315 | } 316 | 317 | /** 318 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 319 | * the UA stylesheet. 320 | */ 321 | 322 | input { 323 | line-height: normal; 324 | } 325 | 326 | /** 327 | * It's recommended that you don't attempt to style these elements. 328 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 329 | * 330 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 331 | * 2. Remove excess padding in IE 8/9/10. 332 | */ 333 | 334 | input[type="checkbox"], 335 | input[type="radio"] { 336 | box-sizing: border-box; /* 1 */ 337 | padding: 0; /* 2 */ 338 | } 339 | 340 | /** 341 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 342 | * `font-size` values of the `input`, it causes the cursor style of the 343 | * decrement button to change from `default` to `text`. 344 | */ 345 | 346 | input[type="number"]::-webkit-inner-spin-button, 347 | input[type="number"]::-webkit-outer-spin-button { 348 | height: auto; 349 | } 350 | 351 | /** 352 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 353 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. 354 | */ 355 | 356 | input[type="search"] { 357 | -webkit-appearance: textfield; /* 1 */ 358 | box-sizing: content-box; /* 2 */ 359 | } 360 | 361 | /** 362 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 363 | * Safari (but not Chrome) clips the cancel button when the search input has 364 | * padding (and `textfield` appearance). 365 | */ 366 | 367 | input[type="search"]::-webkit-search-cancel-button, 368 | input[type="search"]::-webkit-search-decoration { 369 | -webkit-appearance: none; 370 | } 371 | 372 | /** 373 | * Define consistent border, margin, and padding. 374 | */ 375 | 376 | fieldset { 377 | border: 1px solid #c0c0c0; 378 | margin: 0 2px; 379 | padding: 0.35em 0.625em 0.75em; 380 | } 381 | 382 | /** 383 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 384 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 385 | */ 386 | 387 | legend { 388 | border: 0; /* 1 */ 389 | padding: 0; /* 2 */ 390 | } 391 | 392 | /** 393 | * Remove default vertical scrollbar in IE 8/9/10/11. 394 | */ 395 | 396 | textarea { 397 | overflow: auto; 398 | } 399 | 400 | /** 401 | * Don't inherit the `font-weight` (applied by a rule above). 402 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 403 | */ 404 | 405 | optgroup { 406 | font-weight: bold; 407 | } 408 | 409 | /* Tables 410 | ========================================================================== */ 411 | 412 | /** 413 | * Remove most spacing between table cells. 414 | */ 415 | 416 | table { 417 | border-collapse: collapse; 418 | border-spacing: 0; 419 | } 420 | 421 | td, 422 | th { 423 | padding: 0; 424 | } 425 | -------------------------------------------------------------------------------- /assets/css/normalize/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | === HEAD 2 | 3 | === 3.0.3 (March 30, 2015) 4 | 5 | * Remove unnecessary vendor prefixes. 6 | * Add `main` property. 7 | 8 | === 3.0.2 (October 4, 2014) 9 | 10 | * Only alter `background-color` of links in IE 10. 11 | * Add `menu` element to HTML5 display definitions. 12 | 13 | === 3.0.1 (March 27, 2014) 14 | 15 | * Add package.json for npm support. 16 | 17 | === 3.0.0 (January 28, 2014) 18 | 19 | === 3.0.0-rc.1 (January 26, 2014) 20 | 21 | * Explicit tests for each normalization. 22 | * Fix i18n for `q` element. 23 | * Fix `pre` text formatting and overflow. 24 | * Fix vertical alignment of `progress`. 25 | * Address `button` overflow in IE 8/9/10. 26 | * Revert `textarea` alignment modification. 27 | * Fix number input button cursor in Chrome on OS X. 28 | * Remove `a:focus` outline normalization. 29 | * Fix `figure` margin normalization. 30 | * Normalize `optgroup`. 31 | * Remove default table cell padding. 32 | * Set correct display for `progress` in IE 8/9. 33 | * Fix `font` and `color` inheritance for forms. 34 | 35 | === 2.1.3 (August 26, 2013) 36 | 37 | * Fix component.json. 38 | * Remove the gray background color from active links in IE 10. 39 | 40 | === 2.1.2 (May 11, 2013) 41 | 42 | * Revert root `color` and `background` normalizations. 43 | 44 | === 2.1.1 (April 8, 2013) 45 | 46 | * Normalize root `color` and `background` to counter the effects of system 47 | color schemes. 48 | 49 | === 2.1.0 (January 21, 2013) 50 | 51 | * Normalize `text-transform` for `button` and `select`. 52 | * Normalize `h1` margin when within HTML5 sectioning elements. 53 | * Normalize `hr` element. 54 | * Remove unnecessary `pre` styles. 55 | * Add `main` element to HTML5 display definitions. 56 | * Fix cursor style for disabled button `input`. 57 | 58 | === 2.0.1 (August 20, 2012) 59 | 60 | * Remove stray IE 6/7 `inline-block` hack from HTML5 display settings. 61 | 62 | === 2.0.0 (August 19, 2012) 63 | 64 | * Remove legacy browser form normalizations. 65 | * Remove all list normalizations. 66 | * Add `quotes` normalizations. 67 | * Remove all heading normalizations except `h1` font size. 68 | * Form elements automatically inherit `font-family` from ancestor. 69 | * Drop support for IE 6/7, Firefox < 4, and Safari < 5. 70 | 71 | === 1.0.1 (August 19, 2012) 72 | 73 | * Adjust `small` font size normalization. 74 | 75 | === 1.0.0 (August 14, 2012) 76 | 77 | (Only the notable changes since public release) 78 | 79 | * Add MIT License. 80 | * Hide `audio` elements without controls in iOS 5 (#69). 81 | * Normalize heading margins and font size. 82 | * Move font-family normalization from `body` to `html` (#62). 83 | * Remove scrollbar normalization (#64 #65). 84 | * Remove excess padding from checkbox and radio inputs in IE 7 (#42). 85 | * Add IE9 correction for SVG overflow (#16). 86 | * Add fix for legend not inheriting color in IE 6/7/8/9. 87 | -------------------------------------------------------------------------------- /assets/css/normalize/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) Nicolas Gallagher and Jonathan Neal 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 7 | of the Software, and to permit persons to whom the Software is furnished to do 8 | so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /assets/css/normalize/README.md: -------------------------------------------------------------------------------- 1 | # normalize.css v3 2 | 3 | Normalize.css is a customisable CSS file that makes browsers render all 4 | elements more consistently and in line with modern standards. 5 | 6 | The project relies on researching the differences between default browser 7 | styles in order to precisely target only the styles that need or benefit from 8 | normalizing. 9 | 10 | [View the test file](http://necolas.github.io/normalize.css/latest/test.html) 11 | 12 | ## Install 13 | 14 | * [npm](http://npmjs.org/): `npm install --save normalize.css` 15 | * [Component(1)](https://github.com/component/component/): `component install necolas/normalize.css` 16 | * [Bower](http://bower.io/): `bower install --save normalize.css` 17 | * [cdnjs](https://cdnjs.com/libraries/normalize) 18 | * [Download](http://necolas.github.io/normalize.css/latest/normalize.css). 19 | 20 | No other styles should come before Normalize.css. 21 | 22 | It is recommended that you include the `normalize.css` file as untouched 23 | library code. 24 | 25 | ## What does it do? 26 | 27 | * Preserves useful defaults, unlike many CSS resets. 28 | * Normalizes styles for a wide range of elements. 29 | * Corrects bugs and common browser inconsistencies. 30 | * Improves usability with subtle improvements. 31 | * Explains what code does using detailed comments. 32 | 33 | ## Browser support 34 | 35 | * Google Chrome (latest) 36 | * Mozilla Firefox (latest) 37 | * Mozilla Firefox ESR 38 | * Opera (latest) 39 | * Apple Safari 6+ 40 | * Internet Explorer 8+ 41 | 42 | [Normalize.css v1 provides legacy browser 43 | support](https://github.com/necolas/normalize.css/tree/v1) (IE 6+, Safari 4+), 44 | but is no longer actively developed. 45 | 46 | ## Extended details 47 | 48 | Additional detail and explanation of the esoteric parts of normalize.css. 49 | 50 | #### `pre, code, kbd, samp` 51 | 52 | The `font-family: monospace, monospace` hack fixes the inheritance and scaling 53 | of font-size for preformated text. The duplication of `monospace` is 54 | intentional. [Source](http://en.wikipedia.org/wiki/User:Davidgothberg/Test59). 55 | 56 | #### `sub, sup` 57 | 58 | Normally, using `sub` or `sup` affects the line-box height of text in all 59 | browsers. [Source](http://gist.github.com/413930). 60 | 61 | #### `svg:not(:root)` 62 | 63 | Adding `overflow: hidden` fixes IE9's SVG rendering. Earlier versions of IE 64 | don't support SVG, so we can safely use the `:not()` and `:root` selectors that 65 | modern browsers use in the default UA stylesheets to apply this style. [SVG 66 | Mailing List discussion](http://lists.w3.org/Archives/Public/public-svg-wg/2008JulSep/0339.html) 67 | 68 | #### `input[type="search"]` 69 | 70 | The search input is not fully stylable by default. In Chrome and Safari on 71 | OSX/iOS you can't control `font`, `padding`, `border`, or `background`. In 72 | Chrome and Safari on Windows you can't control `border` properly. It will apply 73 | `border-width` but will only show a border color (which cannot be controlled) 74 | for the outer 1px of that border. Applying `-webkit-appearance: textfield` 75 | addresses these issues without removing the benefits of search inputs (e.g. 76 | showing past searches). 77 | 78 | #### `legend` 79 | 80 | Adding `border: 0` corrects an IE 8–11 bug where `color` (yes, `color`) is not 81 | inherited by `legend`. 82 | 83 | ## Contributing 84 | 85 | Please read the CONTRIBUTING.md 86 | 87 | ## Acknowledgements 88 | 89 | Normalize.css is a project by [Nicolas Gallagher](https://github.com/necolas), 90 | co-created with [Jonathan Neal](https://github.com/jonathantneal). 91 | -------------------------------------------------------------------------------- /assets/css/normalize/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS and IE text size adjust after device orientation change, 6 | * without disabling user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 29 | * and Firefox. 30 | * Correct `block` display not defined for `main` in IE 11. 31 | */ 32 | 33 | article, 34 | aside, 35 | details, 36 | figcaption, 37 | figure, 38 | footer, 39 | header, 40 | hgroup, 41 | main, 42 | menu, 43 | nav, 44 | section, 45 | summary { 46 | display: block; 47 | } 48 | 49 | /** 50 | * 1. Correct `inline-block` display not defined in IE 8/9. 51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 52 | */ 53 | 54 | audio, 55 | canvas, 56 | progress, 57 | video { 58 | display: inline-block; /* 1 */ 59 | vertical-align: baseline; /* 2 */ 60 | } 61 | 62 | /** 63 | * Prevent modern browsers from displaying `audio` without controls. 64 | * Remove excess height in iOS 5 devices. 65 | */ 66 | 67 | audio:not([controls]) { 68 | display: none; 69 | height: 0; 70 | } 71 | 72 | /** 73 | * Address `[hidden]` styling not present in IE 8/9/10. 74 | * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. 75 | */ 76 | 77 | [hidden], 78 | template { 79 | display: none; 80 | } 81 | 82 | /* Links 83 | ========================================================================== */ 84 | 85 | /** 86 | * Remove the gray background color from active links in IE 10. 87 | */ 88 | 89 | a { 90 | background-color: transparent; 91 | } 92 | 93 | /** 94 | * Improve readability of focused elements when they are also in an 95 | * active/hover state. 96 | */ 97 | 98 | a:active, 99 | a:hover { 100 | outline: 0; 101 | } 102 | 103 | /* Text-level semantics 104 | ========================================================================== */ 105 | 106 | /** 107 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 108 | */ 109 | 110 | abbr[title] { 111 | border-bottom: 1px dotted; 112 | } 113 | 114 | /** 115 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 116 | */ 117 | 118 | b, 119 | strong { 120 | font-weight: bold; 121 | } 122 | 123 | /** 124 | * Address styling not present in Safari and Chrome. 125 | */ 126 | 127 | dfn { 128 | font-style: italic; 129 | } 130 | 131 | /** 132 | * Address variable `h1` font-size and margin within `section` and `article` 133 | * contexts in Firefox 4+, Safari, and Chrome. 134 | */ 135 | 136 | h1 { 137 | font-size: 2em; 138 | margin: 0.67em 0; 139 | } 140 | 141 | /** 142 | * Address styling not present in IE 8/9. 143 | */ 144 | 145 | mark { 146 | background: #ff0; 147 | color: #000; 148 | } 149 | 150 | /** 151 | * Address inconsistent and variable font size in all browsers. 152 | */ 153 | 154 | small { 155 | font-size: 80%; 156 | } 157 | 158 | /** 159 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 160 | */ 161 | 162 | sub, 163 | sup { 164 | font-size: 75%; 165 | line-height: 0; 166 | position: relative; 167 | vertical-align: baseline; 168 | } 169 | 170 | sup { 171 | top: -0.5em; 172 | } 173 | 174 | sub { 175 | bottom: -0.25em; 176 | } 177 | 178 | /* Embedded content 179 | ========================================================================== */ 180 | 181 | /** 182 | * Remove border when inside `a` element in IE 8/9/10. 183 | */ 184 | 185 | img { 186 | border: 0; 187 | } 188 | 189 | /** 190 | * Correct overflow not hidden in IE 9/10/11. 191 | */ 192 | 193 | svg:not(:root) { 194 | overflow: hidden; 195 | } 196 | 197 | /* Grouping content 198 | ========================================================================== */ 199 | 200 | /** 201 | * Address margin not present in IE 8/9 and Safari. 202 | */ 203 | 204 | figure { 205 | margin: 1em 40px; 206 | } 207 | 208 | /** 209 | * Address differences between Firefox and other browsers. 210 | */ 211 | 212 | hr { 213 | box-sizing: content-box; 214 | height: 0; 215 | } 216 | 217 | /** 218 | * Contain overflow in all browsers. 219 | */ 220 | 221 | pre { 222 | overflow: auto; 223 | } 224 | 225 | /** 226 | * Address odd `em`-unit font size rendering in all browsers. 227 | */ 228 | 229 | code, 230 | kbd, 231 | pre, 232 | samp { 233 | font-family: monospace, monospace; 234 | font-size: 1em; 235 | } 236 | 237 | /* Forms 238 | ========================================================================== */ 239 | 240 | /** 241 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 242 | * styling of `select`, unless a `border` property is set. 243 | */ 244 | 245 | /** 246 | * 1. Correct color not being inherited. 247 | * Known issue: affects color of disabled elements. 248 | * 2. Correct font properties not being inherited. 249 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 250 | */ 251 | 252 | button, 253 | input, 254 | optgroup, 255 | select, 256 | textarea { 257 | color: inherit; /* 1 */ 258 | font: inherit; /* 2 */ 259 | margin: 0; /* 3 */ 260 | } 261 | 262 | /** 263 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 264 | */ 265 | 266 | button { 267 | overflow: visible; 268 | } 269 | 270 | /** 271 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 272 | * All other form control elements do not inherit `text-transform` values. 273 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 274 | * Correct `select` style inheritance in Firefox. 275 | */ 276 | 277 | button, 278 | select { 279 | text-transform: none; 280 | } 281 | 282 | /** 283 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 284 | * and `video` controls. 285 | * 2. Correct inability to style clickable `input` types in iOS. 286 | * 3. Improve usability and consistency of cursor style between image-type 287 | * `input` and others. 288 | */ 289 | 290 | button, 291 | html input[type="button"], /* 1 */ 292 | input[type="reset"], 293 | input[type="submit"] { 294 | -webkit-appearance: button; /* 2 */ 295 | cursor: pointer; /* 3 */ 296 | } 297 | 298 | /** 299 | * Re-set default cursor for disabled elements. 300 | */ 301 | 302 | button[disabled], 303 | html input[disabled] { 304 | cursor: default; 305 | } 306 | 307 | /** 308 | * Remove inner padding and border in Firefox 4+. 309 | */ 310 | 311 | button::-moz-focus-inner, 312 | input::-moz-focus-inner { 313 | border: 0; 314 | padding: 0; 315 | } 316 | 317 | /** 318 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 319 | * the UA stylesheet. 320 | */ 321 | 322 | input { 323 | line-height: normal; 324 | } 325 | 326 | /** 327 | * It's recommended that you don't attempt to style these elements. 328 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 329 | * 330 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 331 | * 2. Remove excess padding in IE 8/9/10. 332 | */ 333 | 334 | input[type="checkbox"], 335 | input[type="radio"] { 336 | box-sizing: border-box; /* 1 */ 337 | padding: 0; /* 2 */ 338 | } 339 | 340 | /** 341 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 342 | * `font-size` values of the `input`, it causes the cursor style of the 343 | * decrement button to change from `default` to `text`. 344 | */ 345 | 346 | input[type="number"]::-webkit-inner-spin-button, 347 | input[type="number"]::-webkit-outer-spin-button { 348 | height: auto; 349 | } 350 | 351 | /** 352 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 353 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. 354 | */ 355 | 356 | input[type="search"] { 357 | -webkit-appearance: textfield; /* 1 */ 358 | box-sizing: content-box; /* 2 */ 359 | } 360 | 361 | /** 362 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 363 | * Safari (but not Chrome) clips the cancel button when the search input has 364 | * padding (and `textfield` appearance). 365 | */ 366 | 367 | input[type="search"]::-webkit-search-cancel-button, 368 | input[type="search"]::-webkit-search-decoration { 369 | -webkit-appearance: none; 370 | } 371 | 372 | /** 373 | * Define consistent border, margin, and padding. 374 | */ 375 | 376 | fieldset { 377 | border: 1px solid #c0c0c0; 378 | margin: 0 2px; 379 | padding: 0.35em 0.625em 0.75em; 380 | } 381 | 382 | /** 383 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 384 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 385 | */ 386 | 387 | legend { 388 | border: 0; /* 1 */ 389 | padding: 0; /* 2 */ 390 | } 391 | 392 | /** 393 | * Remove default vertical scrollbar in IE 8/9/10/11. 394 | */ 395 | 396 | textarea { 397 | overflow: auto; 398 | } 399 | 400 | /** 401 | * Don't inherit the `font-weight` (applied by a rule above). 402 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 403 | */ 404 | 405 | optgroup { 406 | font-weight: bold; 407 | } 408 | 409 | /* Tables 410 | ========================================================================== */ 411 | 412 | /** 413 | * Remove most spacing between table cells. 414 | */ 415 | 416 | table { 417 | border-collapse: collapse; 418 | border-spacing: 0; 419 | } 420 | 421 | td, 422 | th { 423 | padding: 0; 424 | } 425 | -------------------------------------------------------------------------------- /assets/css/normalize/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "normalize.css", 5 | "/home/suissa/webschool.io/site" 6 | ] 7 | ], 8 | "_from": "normalize.css@latest", 9 | "_id": "normalize.css@3.0.3", 10 | "_inCache": true, 11 | "_installable": true, 12 | "_location": "/normalize.css", 13 | "_nodeVersion": "0.10.35", 14 | "_npmUser": { 15 | "email": "nicolasgallagher@gmail.com", 16 | "name": "necolas" 17 | }, 18 | "_npmVersion": "2.7.0", 19 | "_phantomChildren": {}, 20 | "_requested": { 21 | "name": "normalize.css", 22 | "raw": "normalize.css", 23 | "rawSpec": "", 24 | "scope": null, 25 | "spec": "latest", 26 | "type": "tag" 27 | }, 28 | "_requiredBy": [ 29 | "#USER" 30 | ], 31 | "_resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-3.0.3.tgz", 32 | "_shasum": "acc00262e235a2caa91363a2e5e3bfa4f8ad05c6", 33 | "_shrinkwrap": null, 34 | "_spec": "normalize.css", 35 | "_where": "/home/suissa/webschool.io/site", 36 | "author": { 37 | "name": "Nicolas Gallagher" 38 | }, 39 | "bugs": { 40 | "url": "https://github.com/necolas/normalize.css/issues" 41 | }, 42 | "dependencies": {}, 43 | "description": "Normalize.css as a node packaged module", 44 | "devDependencies": {}, 45 | "directories": {}, 46 | "dist": { 47 | "shasum": "acc00262e235a2caa91363a2e5e3bfa4f8ad05c6", 48 | "tarball": "http://registry.npmjs.org/normalize.css/-/normalize.css-3.0.3.tgz" 49 | }, 50 | "files": [ 51 | "LICENSE.md", 52 | "normalize.css" 53 | ], 54 | "gitHead": "2bdda84272650aedfb45d8abe11a6d177933a803", 55 | "homepage": "http://necolas.github.io/normalize.css", 56 | "license": "MIT", 57 | "main": "normalize.css", 58 | "maintainers": [ 59 | { 60 | "name": "tjholowaychuk", 61 | "email": "tj@vision-media.ca" 62 | }, 63 | { 64 | "name": "necolas", 65 | "email": "nicolasgallagher@gmail.com" 66 | } 67 | ], 68 | "name": "normalize.css", 69 | "optionalDependencies": {}, 70 | "readme": "ERROR: No README data found!", 71 | "repository": { 72 | "type": "git", 73 | "url": "git://github.com/necolas/normalize.css.git" 74 | }, 75 | "scripts": {}, 76 | "style": "normalize.css", 77 | "version": "3.0.3" 78 | } 79 | -------------------------------------------------------------------------------- /assets/css/style-artigo.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | .atom-logo { 6 | display: block; 7 | width: 20%; 8 | max-width: 30%; 9 | margin: 0 auto; 10 | } 11 | .atom-titulo-curso { 12 | font-family: 'Permanent Marker', cursive; 13 | font-size: 5rem; 14 | margin: 0; 15 | } 16 | .atom-titulo-modulo { 17 | color: #1437DE; 18 | font-family: 'Roboto', sans-serif; 19 | font-size: 3rem; 20 | margin: 0; 21 | } 22 | .atom-titulo-aula { 23 | color: #1437DE; 24 | font-family: 'Arial', sans-serif; 25 | font-size: 1.8rem; 26 | } 27 | .atom-video { 28 | display: block; 29 | margin: 1em auto; 30 | width: 90%; 31 | } 32 | .atom-slides { 33 | color: #666; 34 | font-size: 1.8rem; 35 | font-weight: bold; 36 | text-decoration: underline; 37 | } 38 | .atom-apostila { 39 | color: #666; 40 | font-size: 1.8rem; 41 | font-weight: bold; 42 | text-decoration: underline; 43 | } 44 | 45 | .molecule-curso { 46 | border-bottom: 1px solid #ccc; 47 | margin-bottom: 4rem; 48 | padding-bottom: 4rem; 49 | } 50 | 51 | .organism-cursos { 52 | text-align: center; 53 | margin: 0 auto; 54 | width: 90%; 55 | } 56 | 57 | .organism-cursos .atom-titulo-curso { 58 | color: #FFCA00; 59 | } 60 | .organism-cursos .atom-titulo-modulo, 61 | .organism-cursos .atom-titulo-aula { 62 | color: #000; 63 | } 64 | .organism-cursos .atom-slides, 65 | .organism-cursos .atom-apostila { 66 | color: #FFCA00; 67 | } 68 | 69 | #molecule-curso-php .atom-titulo-curso { 70 | font-family: 'Alfa Slab One', cursive; 71 | color: #FF4800; 72 | } -------------------------------------------------------------------------------- /assets/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | iframe { 6 | height: 56.25vw; 7 | width: 100%; 8 | } 9 | a { 10 | color: #000; 11 | } 12 | @media screen and (min-width: 800px) { 13 | iframe { 14 | height: 29vw; 15 | width: 100%; 16 | } 17 | .atom-pre-video { 18 | height: 29vw!important; 19 | width: 60%; 20 | margin: auto; 21 | } 22 | } 23 | .atom-logo { 24 | display: block; 25 | width: 20%; 26 | max-width: 30%; 27 | margin: 0 auto; 28 | } 29 | .atom-titulo-curso { 30 | font-family: 'Permanent Marker', cursive; 31 | font-size: 5rem; 32 | margin: 0; 33 | } 34 | .atom-titulo-modulo { 35 | color: #1437DE; 36 | font-family: 'Roboto', sans-serif; 37 | font-size: 3rem; 38 | margin: 0; 39 | } 40 | .atom-titulo-aula { 41 | color: #1437DE; 42 | font-family: 'Arial', sans-serif; 43 | font-size: 1.8rem; 44 | } 45 | .atom-video { 46 | padding-bottom: 2rem; 47 | padding-top: 25px; 48 | height: auto; 49 | } 50 | .atom-pre-video { 51 | background: #F0BC00; 52 | height: 56.25vw; 53 | display: flex; 54 | align-items: center; 55 | justify-content: center; 56 | } 57 | .atom-pre-video span { 58 | border-bottom: 30px solid transparent; 59 | border-top: 30px solid transparent; 60 | border-radius: 0; 61 | opacity: .5; 62 | content: ''; 63 | cursor:pointer; 64 | border-left: 40px solid #FFF; 65 | margin-left: 10px; 66 | transition: all .2s; 67 | } 68 | .atom-pre-video span:hover { 69 | opacity: 1; 70 | } 71 | .videoWrapper iframe { 72 | position: absolute; 73 | top: 0; 74 | left: 0; 75 | width: 100%; 76 | height: 100%; 77 | } 78 | 79 | .atom-slides { 80 | color: #666; 81 | font-size: 1.4rem; 82 | font-weight: bold; 83 | text-decoration: underline; 84 | } 85 | .atom-apostila { 86 | color: #666; 87 | font-size: 1.4rem; 88 | font-weight: bold; 89 | text-decoration: underline; 90 | } 91 | .atom-apoio-texto, 92 | .atom-apoio-valor { 93 | font-family: 'Permanent Marker', cursive; 94 | } 95 | .atom-apoio-texto { 96 | font-size: 2rem; 97 | } 98 | .atom-apoio-valor { 99 | color: #FEE836; 100 | font-size: 4rem; 101 | } 102 | .atom-apoio-valor-texto { 103 | font-size: 1.6rem; 104 | } 105 | 106 | .molecule-aula, 107 | .molecule-curso { 108 | border-bottom: 1px solid #ccc; 109 | margin-bottom: 4rem; 110 | padding-bottom: 4rem; 111 | } 112 | 113 | .organism-cursos { 114 | text-align: center; 115 | margin: 0 auto; 116 | width: 90%; 117 | } 118 | 119 | .organism-cursos .atom-titulo-curso { 120 | color: #FFCA00; 121 | } 122 | .organism-cursos .atom-titulo-modulo, 123 | .organism-cursos .atom-titulo-aula { 124 | color: #000; 125 | } 126 | .organism-cursos .atom-slides, 127 | .organism-cursos .atom-apostila { 128 | color: #FFCA00; 129 | display: inline-block; 130 | width: 25%; 131 | margin: 0 auto; 132 | text-align: center; 133 | } 134 | 135 | #molecule-curso-php .atom-titulo-curso { 136 | font-family: 'Alfa Slab One', cursive; 137 | color: #FF4800; 138 | } 139 | -------------------------------------------------------------------------------- /assets/images/logo-webschool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Webschool-io/site/5d1e8eadec8c8dd241cb147404eff834345c7e08/assets/images/logo-webschool.png -------------------------------------------------------------------------------- /assets/images/webschool-site-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Webschool-io/site/5d1e8eadec8c8dd241cb147404eff834345c7e08/assets/images/webschool-site-01.png -------------------------------------------------------------------------------- /assets/images/webschool-site-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Webschool-io/site/5d1e8eadec8c8dd241cb147404eff834345c7e08/assets/images/webschool-site-02.png -------------------------------------------------------------------------------- /assets/images/webschool-site-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Webschool-io/site/5d1e8eadec8c8dd241cb147404eff834345c7e08/assets/images/webschool-site-03.png -------------------------------------------------------------------------------- /assets/images/webschool-site-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Webschool-io/site/5d1e8eadec8c8dd241cb147404eff834345c7e08/assets/images/webschool-site-04.png -------------------------------------------------------------------------------- /index-artigo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Webschool.io 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 |

Be MEAN

22 |
23 |

MongoDB

24 | 25 |
26 |

Aula 1

27 | 28 |
29 | 30 |
31 | 32 |
33 | Slides 34 | Apostila 35 |
36 |
37 |
38 |
39 | 40 |
41 |

Curso PHP

42 | 43 |
44 |

Introdução

45 | 46 |
47 |

Aula 1

48 | 49 |
50 | 51 |
52 | 53 |
54 | Slides 55 | Apostila 56 |
57 |
58 | 59 |
60 |
61 | 62 |
63 | 64 | 65 | -------------------------------------------------------------------------------- /index-bemean.com.br.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Webschool.io 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 |

Be MEAN

22 | 23 |

24 | Para apoiar esse curso você pode escolher entre 3 valores: R$50, R$100 e R$500. 25 | ATENÇÂO!!! O único meio de conseguir os certificados é por aqui! 26 |

27 | 28 |

R$50

29 |

Recebe os três primeiros certificados (MongoDB, Node.js e AngularJs) com 49 horas ao total.

30 | 31 |
32 | 33 | 34 | 35 | 36 |
37 | 38 | 39 |

R$100

40 |

Recebe TODOS OS 12, pode aumentar, certificados com mais de 140 horas ao total!!!

41 | 42 |
43 | 44 | 45 | 46 | 47 |
48 | 49 | 50 |

R$500

51 |

52 | Recebe TODOS OS 12, pode aumentar, certificados com mais de 140 horas ao total!!! 53 |
54 | Ganha 1 camiseta do Be MEAN, 10 adesivos e pode requisitar um Hangout, de 2 horas, sobre um assunto específico do MEAN para a sua empresa!!! 55 |

56 | 57 |
58 | 59 | 60 | 61 | 62 |
63 | 64 | 65 |

Repositório do curso

66 |

Vídeos no Youtube

67 | 68 |
69 |

MongoDB

70 | 71 |
72 |

Aula 1

73 | 74 |
75 |
76 | 77 |
78 |
79 | 80 |
81 | Slides 82 | Apostila 83 |
84 |
85 | 86 |
87 |

Aula 2

88 | 89 |
90 |
91 | 92 |
93 |
94 | 95 |
96 | Slides 97 | Apostila 98 |
99 |
100 | 101 |
102 |

Aula 3

103 | 104 |
105 |
106 | 107 |
108 |
109 | 110 |
111 | Slides 112 | Apostila 113 |
114 |
115 | 116 |
117 |

Aula 4 - parte 1/2

118 | 119 |
120 |
121 | 122 |
123 |
124 | 125 |
126 | Slides 127 | Apostila 128 |
129 |
130 | 131 |
132 |

Aula 4 - parte 2/2

133 | 134 |
135 |
136 | 137 |
138 |
139 | 140 |
141 | Slides 142 | Apostila 143 |
144 |
145 | 146 | 147 |
148 |

Aula 5

149 | 150 |
151 |
152 | 153 |
154 |
155 | 156 |
157 | Slides 158 | Apostila 159 |
160 |
161 | 162 |
163 |

Aula 6 - parte 1/2

164 | 165 |
166 |
167 | 168 |
169 |
170 | 171 |
172 | Slides 173 | Apostila 174 |
175 |
176 | 177 |
178 |

Aula 6 - parte 2/2

179 | 180 |
181 |
182 | 183 |
184 |
185 |
186 | Slides 187 | Apostila 188 |
189 |
190 | 191 |
192 |

Aula 7

193 | 194 |
195 |
196 | 197 |
198 |
199 | 200 |
201 | Slides 202 | Apostila 203 |
204 |
205 | 206 |
207 | 208 |
209 |

Node.js

210 | 211 |
212 |

Aula 1

213 | 214 |
215 |
216 | 217 |
218 |
219 | 220 |
221 | Slides 222 | Apostila 223 |
224 |
225 | 226 |
227 |

Aula 2

228 | 229 |
230 |
231 | 232 |
233 |
234 | 235 |
236 | Slides 237 | Apostila 238 |
239 |
240 | 241 |
242 |

Aula 3

243 | 244 |
245 |
246 | 247 |
248 |
249 | 250 |
251 | Slides 252 | Apostila 253 |
254 |
255 | 256 |
257 |

Aula 4

258 | 259 |
260 |
261 | 262 |
263 |
264 | 265 |
266 | Slides 267 | Apostila 268 |
269 |
270 | 271 |
272 |

Aula ESPECIAL - ES6

273 | 274 |
275 |
276 | 277 |
278 |
279 | 280 |
281 | Slides 282 | Apostila 283 |
284 |
285 | 286 |
287 |

Aula 5 - parte 1/2

288 | 289 |
290 |
291 | 292 |
293 |
294 | 295 |
296 | Slides 297 | Apostila 298 |
299 |
300 | 301 |
302 |

Aula 5 - parte 2/2

303 | 304 |
305 |
306 | 307 |
308 |
309 | 310 |
311 | Slides 312 | Apostila 313 |
314 |
315 | 316 |
317 |

Aula 6 - parte 1/3

318 | 319 |
320 |
321 | 322 |
323 |
324 | 325 |
326 | Slides 327 | Apostila 328 |
329 |
330 | 331 |
332 |

Aula 6 - parte 2/3

333 | 334 |
335 |
336 | 337 |
338 |
339 | 340 |
341 | Slides 342 | Apostila 343 |
344 |
345 | 346 |
347 |

Aula 6 - parte 3/3

348 | 349 |
350 |
351 | 352 |
353 |
354 | 355 |
356 | Slides 357 | Apostila 358 |
359 |
360 | 361 | 362 | 363 |
364 |

Aula 7

365 | 366 |
367 |
368 | 369 |
370 |
371 | 372 |
373 | Slides 374 | Apostila 375 |
376 |
377 | 378 |
379 |

Aula 8 - parte 1/5

380 | 381 |
382 |
383 | 384 |
385 |
386 | 387 |
388 | Slides 389 | Apostila 390 |
391 |
392 | 393 |
394 |

Aula 8 - parte 2/5

395 | 396 |
397 |
398 | 399 |
400 |
401 | 402 |
403 | Slides 404 | Apostila 405 |
406 |
407 | 408 |
409 |

Aula 8 - parte 3/5

410 | 411 |
412 |
413 | 414 |
415 |
416 | 417 |
418 | Slides 419 | Apostila 420 |
421 |
422 | 423 |
424 |

Aula 8 - parte 4/5

425 | 426 |
427 |
428 | 429 |
430 |
431 | 432 |
433 | Slides 434 | Apostila 435 |
436 |
437 | 438 |
439 |

Aula 8 - parte 5/5

440 | 441 |
442 |
443 | 444 |
445 |
446 | 447 |
448 | Slides 449 | Apostila 450 |
451 |
452 | 453 |
454 |

Aula 8 - parte 6

455 | 456 |
457 |
458 | 459 |
460 |
461 | 462 |
463 | Slides 464 | Apostila 465 |
466 |
467 | 468 |
469 |

Aula 9 - parte 1

470 | 471 |
472 |
473 | 474 |
475 |
476 | 477 |
478 | Slides 479 | Apostila 480 |
481 |
482 | 483 |
484 |

Aula 9 - parte 2

485 | 486 |
487 |
488 | 489 |
490 |
491 | 492 |
493 | Slides 494 | Apostila 495 |
496 |
497 | 498 |
499 |

Aula 10 - parte 1/3

500 | 501 |
502 |
503 | 504 |
505 |
506 | 507 |
508 | Slides 509 | Apostila 510 |
511 |
512 | 513 |
514 |

Aula 10 - parte 2/3

515 | 516 |
517 |
518 | 519 |
520 |
521 | 522 |
523 | Slides 524 | Apostila 525 |
526 |
527 | 528 |
529 |

Aula 11

530 | 531 |
532 |
533 | 534 |
535 |
536 | 537 |
538 | Slides 539 | Apostila 540 |
541 |
542 | 543 |
544 |

Aula 12 - parte 1/3

545 | 546 |
547 |
548 | 549 |
550 |
551 | 552 |
553 | Slides 554 | Apostila 555 |
556 |
557 | 558 |
559 | 560 |
561 |
562 | 563 | 574 | 575 | 576 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Webschool.io 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 |

Be MEAN

22 | 23 |

24 | Para apoiar esse curso você pode escolher entre 3 valores: R$50, R$100 e R$500. 25 | ATENÇÂO!!! O único meio de conseguir os certificados é por aqui! 26 |

27 | 28 |

R$50

29 |

Recebe os três primeiros certificados (MongoDB, Node.js e AngularJs) com 49 horas ao total.

30 | 31 |
32 | 33 | 34 | 35 | 36 |
37 | 38 | 39 |

R$100

40 |

Recebe TODOS OS 12, pode aumentar, certificados com mais de 140 horas ao total!!!

41 | 42 |
43 | 44 | 45 | 46 | 47 |
48 | 49 | 50 |

R$500

51 |

52 | Recebe TODOS OS 12, pode aumentar, certificados com mais de 140 horas ao total!!! 53 |
54 | Ganha 1 camiseta do Be MEAN, 10 adesivos e pode requisitar um Hangout, de 2 horas, sobre um assunto específico do MEAN para a sua empresa!!! 55 |

56 | 57 |
58 | 59 | 60 | 61 | 62 |
63 | 64 | 65 |

Repositório do curso

66 |

Vídeos no Youtube

67 | 68 |
69 |

MongoDB

70 | 71 |
72 |

Aula 1

73 | 74 |
75 |
76 | 77 |
78 |
79 | 80 |
81 | Slides 82 | Apostila 83 |
84 |
85 | 86 |
87 |

Aula 2

88 | 89 |
90 |
91 | 92 |
93 |
94 | 95 |
96 | Slides 97 | Apostila 98 |
99 |
100 | 101 |
102 |

Aula 3

103 | 104 |
105 |
106 | 107 |
108 |
109 | 110 |
111 | Slides 112 | Apostila 113 |
114 |
115 | 116 |
117 |

Aula 4 - parte 1/2

118 | 119 |
120 |
121 | 122 |
123 |
124 | 125 |
126 | Slides 127 | Apostila 128 |
129 |
130 | 131 |
132 |

Aula 4 - parte 2/2

133 | 134 |
135 |
136 | 137 |
138 |
139 | 140 |
141 | Slides 142 | Apostila 143 |
144 |
145 | 146 | 147 |
148 |

Aula 5

149 | 150 |
151 |
152 | 153 |
154 |
155 | 156 |
157 | Slides 158 | Apostila 159 |
160 |
161 | 162 |
163 |

Aula 6 - parte 1/2

164 | 165 |
166 |
167 | 168 |
169 |
170 | 171 |
172 | Slides 173 | Apostila 174 |
175 |
176 | 177 |
178 |

Aula 6 - parte 2/2

179 | 180 |
181 |
182 | 183 |
184 |
185 |
186 | Slides 187 | Apostila 188 |
189 |
190 | 191 |
192 |

Aula 7

193 | 194 |
195 |
196 | 197 |
198 |
199 | 200 |
201 | Slides 202 | Apostila 203 |
204 |
205 | 206 |
207 | 208 |
209 |

Node.js

210 | 211 |
212 |

Aula 1

213 | 214 |
215 |
216 | 217 |
218 |
219 | 220 |
221 | Slides 222 | Apostila 223 |
224 |
225 | 226 |
227 |

Aula 2

228 | 229 |
230 |
231 | 232 |
233 |
234 | 235 |
236 | Slides 237 | Apostila 238 |
239 |
240 | 241 |
242 |

Aula 3

243 | 244 |
245 |
246 | 247 |
248 |
249 | 250 |
251 | Slides 252 | Apostila 253 |
254 |
255 | 256 |
257 |

Aula 4

258 | 259 |
260 |
261 | 262 |
263 |
264 | 265 |
266 | Slides 267 | Apostila 268 |
269 |
270 | 271 |
272 |

Aula ESPECIAL - ES6

273 | 274 |
275 |
276 | 277 |
278 |
279 | 280 |
281 | Slides 282 | Apostila 283 |
284 |
285 | 286 |
287 |

Aula 5 - parte 1/2

288 | 289 |
290 |
291 | 292 |
293 |
294 | 295 |
296 | Slides 297 | Apostila 298 |
299 |
300 | 301 |
302 |

Aula 5 - parte 2/2

303 | 304 |
305 |
306 | 307 |
308 |
309 | 310 |
311 | Slides 312 | Apostila 313 |
314 |
315 | 316 |
317 |

Aula 6 - parte 1/3

318 | 319 |
320 |
321 | 322 |
323 |
324 | 325 |
326 | Slides 327 | Apostila 328 |
329 |
330 | 331 |
332 |

Aula 6 - parte 2/3

333 | 334 |
335 |
336 | 337 |
338 |
339 | 340 |
341 | Slides 342 | Apostila 343 |
344 |
345 | 346 |
347 |

Aula 6 - parte 3/3

348 | 349 |
350 |
351 | 352 |
353 |
354 | 355 |
356 | Slides 357 | Apostila 358 |
359 |
360 | 361 | 362 | 363 |
364 |

Aula 7

365 | 366 |
367 |
368 | 369 |
370 |
371 | 372 |
373 | Slides 374 | Apostila 375 |
376 |
377 | 378 |
379 |

Aula 8 - parte 1/5

380 | 381 |
382 |
383 | 384 |
385 |
386 | 387 |
388 | Slides 389 | Apostila 390 |
391 |
392 | 393 |
394 |

Aula 8 - parte 2/5

395 | 396 |
397 |
398 | 399 |
400 |
401 | 402 |
403 | Slides 404 | Apostila 405 |
406 |
407 | 408 |
409 |

Aula 8 - parte 3/5

410 | 411 |
412 |
413 | 414 |
415 |
416 | 417 |
418 | Slides 419 | Apostila 420 |
421 |
422 | 423 |
424 |

Aula 8 - parte 4/5

425 | 426 |
427 |
428 | 429 |
430 |
431 | 432 |
433 | Slides 434 | Apostila 435 |
436 |
437 | 438 |
439 |

Aula 8 - parte 5/5

440 | 441 |
442 |
443 | 444 |
445 |
446 | 447 |
448 | Slides 449 | Apostila 450 |
451 |
452 | 453 |
454 |

Aula 8 - parte 6

455 | 456 |
457 |
458 | 459 |
460 |
461 | 462 |
463 | Slides 464 | Apostila 465 |
466 |
467 | 468 |
469 |

Aula 9 - parte 1

470 | 471 |
472 |
473 | 474 |
475 |
476 | 477 |
478 | Slides 479 | Apostila 480 |
481 |
482 | 483 |
484 |

Aula 9 - parte 2

485 | 486 |
487 |
488 | 489 |
490 |
491 | 492 |
493 | Slides 494 | Apostila 495 |
496 |
497 | 498 |
499 |

Aula 10 - parte 1/3

500 | 501 |
502 |
503 | 504 |
505 |
506 | 507 |
508 | Slides 509 | Apostila 510 |
511 |
512 | 513 |
514 |

Aula 10 - parte 2/3

515 | 516 |
517 |
518 | 519 |
520 |
521 | 522 |
523 | Slides 524 | Apostila 525 |
526 |
527 | 528 |
529 |

Aula 11

530 | 531 |
532 |
533 | 534 |
535 |
536 | 537 |
538 | Slides 539 | Apostila 540 |
541 |
542 | 543 |
544 |

Aula 12 - parte 1/3

545 | 546 |
547 |
548 | 549 |
550 |
551 | 552 |
553 | Slides 554 | Apostila 555 |
556 |
557 | 558 |
559 | 560 |
561 |
562 | 563 | 574 | 575 | 576 | -------------------------------------------------------------------------------- /videos.js: -------------------------------------------------------------------------------- 1 | var videos = { 2 | mongoDB: { 3 | aula01: '', 4 | aula02: '', 5 | aula03: '', 6 | aula04pt1: '', 7 | aula04pt2: '', 8 | aula05: '', 9 | aula06pt1: '', 10 | aula06pt2: '', 11 | aula07: '', 12 | }, 13 | nodeJS: { 14 | aula01: '', 15 | aula02: '', 16 | aula03: '', 17 | aula04: '', 18 | aulaEspecialES6: '', 19 | aula05pt1: '', 20 | aula05pt2: '', 21 | aula06pt1: '', 22 | aula06pt2: '', 23 | aula06pt3: '', 24 | aula07: '', 25 | aula08pt1: '', 26 | aula08pt2: '', 27 | aula08pt3: '', 28 | aula08pt4: '', 29 | aula08pt5: '', 30 | aula08pt6: '', 31 | aula09pt1: '', 32 | aula09pt2: '', 33 | aula10pt1: '', 34 | aula10pt2: '', 35 | aula11: '', 36 | aula12pt1: '' 37 | } 38 | } 39 | --------------------------------------------------------------------------------