├── README.md ├── img ├── scr_dev1.png ├── scr_dev2.png ├── scr_edu1.png └── scr_edu2.png └── src ├── app ├── bg.html ├── css │ ├── normalize.css │ ├── options.css │ └── style.css ├── index.html ├── js │ ├── index.js │ ├── lib.js │ └── options.js └── options.html └── manifest.json /README.md: -------------------------------------------------------------------------------- 1 | # landing 2 | 3 | A Chrome extension that provides a minimal New Tab page. 4 | 5 | ## Screenshots 6 | 7 |  8 |  9 |  10 |  11 | 12 | ## Usage 13 | 14 | After installing (either from the [Chrome Web Store](https://chrome.google.com/webstore/detail/landing/ejfjhmoplgdbebjlgllbkjgmjfakjjfd) or by loading the unpacked extension from `chrome://extensions`), open a new tab. A new bookmarks folder named **landing** will be created in your **Other bookmarks** folder. To add items to your New Tab page, place bookmarks in the **landing** folder in the following structure: 15 | 16 | - Other bookmarks (folder) 17 | - landing (folder) 18 | - category 1 (folder) 19 | - item A (bookmark) 20 | - item B (bookmark) 21 | - category 2 (folder) 22 | - item X (bookmark) 23 | - item Y (bookmark) 24 | 25 | etc. 26 | 27 | -------------------------------------------------------------------------------- /img/scr_dev1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alex-chew/landing/037cfe8789c5eceb2ccabb0bdef5a22219b2140e/img/scr_dev1.png -------------------------------------------------------------------------------- /img/scr_dev2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alex-chew/landing/037cfe8789c5eceb2ccabb0bdef5a22219b2140e/img/scr_dev2.png -------------------------------------------------------------------------------- /img/scr_edu1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alex-chew/landing/037cfe8789c5eceb2ccabb0bdef5a22219b2140e/img/scr_edu1.png -------------------------------------------------------------------------------- /img/scr_edu2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alex-chew/landing/037cfe8789c5eceb2ccabb0bdef5a22219b2140e/img/scr_edu2.png -------------------------------------------------------------------------------- /src/app/bg.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/app/css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} 2 | -------------------------------------------------------------------------------- /src/app/css/options.css: -------------------------------------------------------------------------------- 1 | .container { 2 | padding: 8px; 3 | } 4 | 5 | .option { 6 | margin-bottom: 8px; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /src/app/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: #333; 3 | font-family: "Roboto Mono", monospace; 4 | 5 | display: flex; 6 | flex-direction: column; 7 | justify-content: center; 8 | align-items: center; 9 | height: 100vh; 10 | } 11 | 12 | .container { 13 | display: flex; 14 | flex-direction: column; 15 | align-items: center; 16 | 17 | width: 80%; 18 | } 19 | 20 | .table { 21 | margin: 2.4em 0; 22 | } 23 | 24 | .quote { 25 | margin-bottom: 2.4em; 26 | text-align: center; 27 | } 28 | 29 | .animated .row, .animated .quote { 30 | opacity: 0; 31 | transform: translateY(1em); 32 | 33 | animation-duration: 0.5s; 34 | animation-fill-mode: forwards; 35 | animation-name: enter; 36 | } 37 | 38 | @keyframes enter { 39 | to { 40 | opacity: 1; 41 | transform: translateY(0); 42 | } 43 | } 44 | 45 | .row:not(:last-child) .list { 46 | margin-bottom: 1.6em; 47 | } 48 | 49 | .category { 50 | box-sizing: border-box; 51 | padding-right: 0.8em; 52 | 53 | text-align: right; 54 | vertical-align: top; 55 | } 56 | 57 | .list { 58 | box-sizing: border-box; 59 | margin: 0; 60 | padding-left: 0.8em; 61 | 62 | border-left-style: solid; 63 | } 64 | 65 | .item { 66 | margin-bottom: 0.4em; 67 | 68 | list-style: none; 69 | vertical-align: top; 70 | } 71 | 72 | .link { 73 | text-decoration: none; 74 | color: inherit; 75 | } 76 | 77 | .errMsg { 78 | width: 300px; 79 | height: auto; 80 | 81 | font-size: 24px; 82 | text-align: center; 83 | } 84 | 85 | .text-custom { 86 | color: #ccc; 87 | transition: color 0.25s ease-out 0s; 88 | } 89 | 90 | .line-custom { 91 | border-left-color: #ccc; 92 | transition: border-left-color 0.25s ease-out 0s; 93 | } 94 | -------------------------------------------------------------------------------- /src/app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |