├── size-plugin.json ├── .prettierignore ├── src ├── css │ ├── components │ │ ├── _footer.scss │ │ ├── _page.scss │ │ └── _header.scss │ ├── base │ │ ├── vars │ │ │ ├── _sizes.scss │ │ │ ├── _icons.scss │ │ │ ├── _colors.scss │ │ │ ├── _media-queries.scss │ │ │ ├── _fonts.scss │ │ │ └── _transitions.scss │ │ ├── utilities │ │ │ ├── _u-align.scss │ │ │ ├── _u-grab.scss │ │ │ └── _u-overlay.scss │ │ ├── mixins │ │ │ ├── _mixins.scss │ │ │ ├── _aspect_ratio.scss │ │ │ ├── _responsive_font.scss │ │ │ └── _font_style.scss │ │ ├── _base.scss │ │ ├── _ui-defs.scss │ │ ├── _typography.scss │ │ └── _ui-resets.scss │ └── app.scss ├── scripts │ ├── constants │ │ ├── config.js │ │ └── langs.js │ ├── components │ │ └── header │ │ │ ├── constants.js │ │ │ ├── actions.js │ │ │ ├── reducers.js │ │ │ └── Header.js │ ├── reducers │ │ └── index.js │ ├── pages │ │ ├── notfound │ │ │ └── Notfound.js │ │ ├── about │ │ │ └── About.js │ │ └── homepage │ │ │ └── Homepage.js │ ├── store │ │ ├── index.js │ │ ├── storeWatcher.js │ │ ├── store.js │ │ └── globalStore.js │ ├── layout │ │ ├── constants.js │ │ ├── actions.js │ │ ├── reducers.js │ │ ├── Prevent.js │ │ ├── Prefetch.js │ │ └── Layout.js │ ├── app │ │ ├── constants.js │ │ ├── selectors.js │ │ ├── Cache.js │ │ ├── actions.js │ │ ├── reducers.js │ │ └── App.js │ ├── utils │ │ ├── loadScript.js │ │ ├── cleanURL.js │ │ ├── uniqueId.js │ │ ├── scrollPrevent.js │ │ ├── url.js │ │ ├── misc.js │ │ ├── offset.js │ │ ├── is.js │ │ └── loadImages.js │ ├── index.js │ ├── router.js │ └── abstract │ │ ├── page.js │ │ ├── base.js │ │ └── component.js ├── assets │ ├── images │ │ ├── image.gif │ │ └── test.jpg │ ├── favicon │ │ ├── favicon.ico │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── mstile-150x150.png │ │ ├── apple-touch-icon.png │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-256x256.png │ │ ├── browserconfig.xml │ │ ├── site.webmanifest │ │ └── safari-pinned-tab.svg │ ├── fonts │ │ ├── UntitledSans-Regular.woff │ │ └── UntitledSans-Regular.woff2 │ └── svgs │ │ ├── twitter.svg │ │ └── instagram.svg ├── data │ ├── about.json │ ├── 404.json │ └── index.json └── .htaccess ├── postcss.config.cjs ├── .vscode └── settings.json ├── plato ├── @types │ ├── index.d.ts │ ├── global.d.ts │ └── route.d.ts ├── utils │ ├── routes.ts │ └── reporter.ts ├── commands │ ├── build-javascript.ts │ ├── build-critical.ts │ ├── develop-watchers.ts │ ├── develop.ts │ └── build.ts ├── core │ ├── saveData.ts │ ├── createPages.ts │ ├── updateRoutes.ts │ └── buildHTML.ts ├── index.ts └── tsconfig.json ├── shared └── templates │ ├── layout.art │ ├── notfound.art │ ├── about.art │ ├── partials │ ├── srcset.art │ ├── footer.art │ ├── responsive-image.art │ └── header.art │ ├── filters │ └── index.js │ ├── homepage.art │ └── svgs │ └── instagram.art ├── .prettierrc ├── .editorconfig ├── reports └── plain-report.txt ├── .gitignore ├── config ├── babel.legacy.config.js ├── webpack.dev.config.js └── webpack.prod.config.js ├── .babelrc ├── plato-node.js ├── .eslintrc ├── LICENSE ├── site-config.js ├── README.md ├── package.json └── .stylelintrc /size-plugin.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | src/scripts/vendors/ 2 | node_modules -------------------------------------------------------------------------------- /src/css/components/_footer.scss: -------------------------------------------------------------------------------- 1 | // Global Footer 2 | #footer { 3 | } 4 | -------------------------------------------------------------------------------- /src/scripts/constants/config.js: -------------------------------------------------------------------------------- 1 | export const JSON_ENDPOINTS = '/data/'; 2 | -------------------------------------------------------------------------------- /src/scripts/constants/langs.js: -------------------------------------------------------------------------------- 1 | // ACTION 2 | export const LANGS = ['en-US']; 3 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [require('autoprefixer')], 3 | }; 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnSave": true, 3 | "javascript.format.enable": true, 4 | } -------------------------------------------------------------------------------- /src/assets/images/image.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/images/image.gif -------------------------------------------------------------------------------- /src/assets/images/test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/images/test.jpg -------------------------------------------------------------------------------- /src/assets/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/favicon/favicon.ico -------------------------------------------------------------------------------- /src/assets/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /src/assets/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /src/assets/favicon/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/favicon/mstile-150x150.png -------------------------------------------------------------------------------- /src/assets/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /src/css/base/vars/_sizes.scss: -------------------------------------------------------------------------------- 1 | // heights 2 | 3 | // width 4 | $padding: 80px; 5 | $padding-mobile: 30px; 6 | $nav-padding: 30px; 7 | -------------------------------------------------------------------------------- /src/assets/fonts/UntitledSans-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/fonts/UntitledSans-Regular.woff -------------------------------------------------------------------------------- /src/assets/fonts/UntitledSans-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/fonts/UntitledSans-Regular.woff2 -------------------------------------------------------------------------------- /src/data/about.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "title": "About title" 4 | }, 5 | "content": { 6 | "title": "Hello World About" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/assets/favicon/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/favicon/android-chrome-192x192.png -------------------------------------------------------------------------------- /src/assets/favicon/android-chrome-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimRoussilhe/Plato/HEAD/src/assets/favicon/android-chrome-256x256.png -------------------------------------------------------------------------------- /src/css/base/utilities/_u-align.scss: -------------------------------------------------------------------------------- 1 | @mixin u-flex-align { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | } 6 | -------------------------------------------------------------------------------- /src/css/base/utilities/_u-grab.scss: -------------------------------------------------------------------------------- 1 | .u-grab { 2 | cursor: move; 3 | cursor: grab; 4 | 5 | &:active { 6 | cursor: grabbing; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/scripts/components/header/constants.js: -------------------------------------------------------------------------------- 1 | // ACTION 2 | export const SHOW_HEADER = 'SHOW_HEADER'; 3 | export const HIDE_HEADER = 'HIDE_HEADER'; 4 | -------------------------------------------------------------------------------- /plato/@types/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'opn'; 2 | declare module 'critical'; 3 | declare module 'convert-hrtime'; 4 | declare module 'html-minifier'; 5 | -------------------------------------------------------------------------------- /src/css/base/vars/_icons.scss: -------------------------------------------------------------------------------- 1 | .icon { 2 | max-width: 40px; 3 | display: block; 4 | &.instagram { 5 | fill: blue; 6 | margin: 50px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /shared/templates/layout.art: -------------------------------------------------------------------------------- 1 | {{ include './partials/header.art' }} 2 | 3 |