├── .babelrc
├── .eslintrc.json
├── .gitignore
├── README.md
├── assets
├── css
│ └── style.css
├── fonts
│ └── geomanist
│ │ ├── geomanist-book.eot
│ │ ├── geomanist-book.svg
│ │ ├── geomanist-book.ttf
│ │ ├── geomanist-book.woff
│ │ └── geomanist-book.woff2
├── img
│ ├── favicon.png
│ ├── icons
│ │ ├── fullscreen.svg
│ │ ├── pause.svg
│ │ ├── play.svg
│ │ ├── popup.svg
│ │ ├── stop.svg
│ │ ├── volume-mute.svg
│ │ └── volume.svg
│ ├── javascript.svg
│ └── ultimate.svg
└── media
│ ├── autumn.mp3
│ └── autumn.mp4
├── index.html
├── package-lock.json
├── package.json
├── src
└── index.js
└── webpack.config.babel.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["@babel/preset-env"],
3 | "plugins": [
4 | "@babel/plugin-proposal-class-properties",
5 | "@babel/plugin-proposal-private-methods",
6 | "@babel/transform-runtime"
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "parser": "babel-eslint",
3 | "env": {
4 | "browser": true,
5 | "es6": true
6 | },
7 | "extends": "eslint:recommended",
8 | "globals": {
9 | "Atomics": "readonly",
10 | "SharedArrayBuffer": "readonly"
11 | },
12 | "parserOptions": {
13 | "ecmaVersion": 2020,
14 | "sourceType": "module"
15 | },
16 | "rules": {
17 | "no-console": "off"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist/*
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | JavaScript HTML5 APIs: Starter Project
4 |
5 |
6 |
7 | ---
8 |
9 |
10 |

11 |
12 |
13 | ---
14 |
15 | Members, please refer to the [course setup](https://ultimatecourses.com/course/javascript-dom) instructions to get started!
16 |
--------------------------------------------------------------------------------
/assets/css/style.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Geomanist';
3 | src: url('../fonts/geomanist/geomanist-book.eot');
4 | src: url('../fonts/geomanist/geomanist-book.eot?#iefix')
5 | format('embedded-opentype'),
6 | url('../fonts/geomanist/geomanist-book.woff2') format('woff2'),
7 | url('../fonts/geomanist/geomanist-book.woff') format('woff'),
8 | url('../fonts/geomanist/geomanist-book.ttf') format('truetype'),
9 | url('../fonts/geomanist/geomanist-book.svg#geomanist-book') format('svg');
10 | font-weight: normal;
11 | font-style: normal;
12 | }
13 |
14 | html,
15 | body {
16 | padding: 0;
17 | margin: 0;
18 | }
19 |
20 | html {
21 | font-family: 'Geomanist';
22 | font-size: 62.5%;
23 | font-weight: normal;
24 | letter-spacing: 0.2px;
25 | color: #545e6f;
26 | -webkit-font-smoothing: antialiased;
27 | -moz-osx-font-smoothing: grayscale;
28 | }
29 |
30 | body {
31 | background: #f1f2f5;
32 | }
33 |
34 | .header {
35 | background: #451771;
36 | padding: 20px 25px;
37 | }
38 |
39 | .logo {
40 | display: flex;
41 | justify-content: center;
42 | }
43 |
44 | .logo-ultimate {
45 | height: 30px;
46 | width: 30px;
47 | background: url('../img/ultimate.svg') no-repeat center center;
48 | background-size: contain;
49 | }
50 |
51 | .logo-name {
52 | margin: 0 0 0 14px;
53 | line-height: 30px;
54 | font-size: 1.6rem;
55 | color: #fff;
56 | }
57 |
58 | .header-logo img {
59 | height: 100%;
60 | }
61 |
62 | #app {
63 | padding-top: 50px;
64 | text-align: center;
65 | }
66 |
67 | #app h1 {
68 | margin: 0;
69 | font-size: 3rem;
70 | }
71 |
72 | #app h1:before {
73 | content: '';
74 | background: url('../img/javascript.svg') no-repeat center center;
75 | background-size: contain;
76 | width: 34px;
77 | height: 34px;
78 | display: inline-block;
79 | margin-right: 14px;
80 | position: relative;
81 | top: 6px;
82 | }
83 |
--------------------------------------------------------------------------------
/assets/fonts/geomanist/geomanist-book.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ultimatecourses/javascript-html5-apis/b48a418e5b50945e74404ac9e256993553357b47/assets/fonts/geomanist/geomanist-book.eot
--------------------------------------------------------------------------------
/assets/fonts/geomanist/geomanist-book.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
2392 |
--------------------------------------------------------------------------------
/assets/fonts/geomanist/geomanist-book.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ultimatecourses/javascript-html5-apis/b48a418e5b50945e74404ac9e256993553357b47/assets/fonts/geomanist/geomanist-book.ttf
--------------------------------------------------------------------------------
/assets/fonts/geomanist/geomanist-book.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ultimatecourses/javascript-html5-apis/b48a418e5b50945e74404ac9e256993553357b47/assets/fonts/geomanist/geomanist-book.woff
--------------------------------------------------------------------------------
/assets/fonts/geomanist/geomanist-book.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ultimatecourses/javascript-html5-apis/b48a418e5b50945e74404ac9e256993553357b47/assets/fonts/geomanist/geomanist-book.woff2
--------------------------------------------------------------------------------
/assets/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ultimatecourses/javascript-html5-apis/b48a418e5b50945e74404ac9e256993553357b47/assets/img/favicon.png
--------------------------------------------------------------------------------
/assets/img/icons/fullscreen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/icons/pause.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/icons/play.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/icons/popup.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/icons/stop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/icons/volume-mute.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/icons/volume.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/javascript.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/ultimate.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/media/autumn.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ultimatecourses/javascript-html5-apis/b48a418e5b50945e74404ac9e256993553357b47/assets/media/autumn.mp3
--------------------------------------------------------------------------------
/assets/media/autumn.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ultimatecourses/javascript-html5-apis/b48a418e5b50945e74404ac9e256993553357b47/assets/media/autumn.mp4
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Ultimate Courses
5 |
6 |
7 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "javascript-web-apis",
3 | "version": "1.0.0",
4 | "description": "Starter Repo for JavaScript HTML5 APIs",
5 | "main": "index.js",
6 | "repository": {
7 | "type": "git",
8 | "url": "git://github.com/ultimatecourses/javascript-web-apis.git"
9 | },
10 | "scripts": {
11 | "test": "echo \"Error: no test specified\" && exit 1",
12 | "watch": "webpack --watch",
13 | "start": "webpack-dev-server",
14 | "build": "webpack"
15 | },
16 | "author": "Ultimate Courses",
17 | "license": "MIT",
18 | "devDependencies": {
19 | "@babel/core": "^7.10.5",
20 | "@babel/plugin-proposal-class-properties": "^7.10.4",
21 | "@babel/plugin-proposal-private-methods": "^7.10.4",
22 | "@babel/plugin-transform-runtime": "^7.14.5",
23 | "@babel/preset-env": "^7.10.4",
24 | "@babel/register": "^7.10.5",
25 | "babel-eslint": "^10.1.0",
26 | "babel-loader": "^8.1.0",
27 | "css-loader": "^4.0.0",
28 | "eslint": "^7.5.0",
29 | "eslint-loader": "^4.0.2",
30 | "eslint-plugin-import": "^2.22.0",
31 | "file-loader": "^6.0.0",
32 | "html-webpack-plugin": "^4.3.0",
33 | "script-ext-html-webpack-plugin": "^2.1.4",
34 | "style-loader": "^1.2.1",
35 | "webpack": "^4.44.0",
36 | "webpack-cli": "^3.3.12",
37 | "webpack-dev-server": "^3.11.0"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import '../assets/css/style.css';
2 |
3 | const app = document.getElementById('app');
4 | app.innerHTML = 'JavaScript HTML5 APIs
';
--------------------------------------------------------------------------------
/webpack.config.babel.js:
--------------------------------------------------------------------------------
1 | import path from 'path';
2 | import HtmlWebpackPlugin from 'html-webpack-plugin';
3 | import ScriptExtHtmlWebpackPlugin from 'script-ext-html-webpack-plugin';
4 |
5 | export default {
6 | entry: path.join(__dirname, 'src/index.js'),
7 | output: {
8 | path: path.join(__dirname, 'dist'),
9 | filename: '[name].bundle.js',
10 | },
11 | module: {
12 | rules: [
13 | {
14 | test: /\.js/,
15 | exclude: /(node_modules)/,
16 | use: ['babel-loader', 'eslint-loader'],
17 | },
18 | {
19 | test: /\.css$/,
20 | use: ['style-loader', 'css-loader'],
21 | },
22 | {
23 | test: /\.(png|svg|jpg|gif)$/,
24 | use: ['file-loader'],
25 | },
26 | {
27 | test: /\.(woff|woff2|eot|ttf|otf)$/,
28 | use: ['file-loader'],
29 | },
30 | {
31 | test: /\.(mp3|mp4|webm)$/,
32 | use: ['file-loader'],
33 | },
34 | ],
35 | },
36 | plugins: [
37 | new HtmlWebpackPlugin({
38 | template: path.join(__dirname, 'index.html'),
39 | favicon: 'assets/img/favicon.png',
40 | }),
41 | new ScriptExtHtmlWebpackPlugin({
42 | defaultAttribute: 'async',
43 | }),
44 | ],
45 | stats: 'minimal',
46 | devtool: 'source-map',
47 | mode: 'development',
48 | devServer: {
49 | stats: {
50 | colors: true,
51 | hash: false,
52 | version: false,
53 | timings: false,
54 | assets: false,
55 | chunks: false,
56 | modules: false,
57 | reasons: false,
58 | children: false,
59 | source: true,
60 | errors: false,
61 | errorDetails: false,
62 | warnings: false,
63 | publicPath: false,
64 | },
65 | open: false,
66 | contentBase: './dist',
67 | clientLogLevel: 'none',
68 | historyApiFallback: true,
69 | inline: true,
70 | port: 4000,
71 | },
72 | };
73 |
--------------------------------------------------------------------------------