From 3a27f7985b06cdc6db0b4d68e7be09adf27f51a6 Mon Sep 17 00:00:00 2001 From: Dominic Masters <dominic@domsplace.com> Date: Sat, 5 May 2018 21:13:43 +1000 Subject: [PATCH] Coding style decided --- package.json | 19 +++ public/App.jsx | 48 ++++++++ public/images/logo.svg | 48 ++++++++ public/index.html | 18 +++ public/index.jsx | 36 ++++++ public/nav/navbar/Navbar.jsx | 62 ++++++++++ public/page/Page.jsx | 40 +++++++ public/page/home/Homepage.jsx | 41 +++++++ public/page/test/KitchenSinkPage.jsx | 153 ++++++++++++++++++++++++ public/styles/components/_page.scss | 12 ++ public/styles/elements/_a.scss | 19 +++ public/styles/elements/_headings.scss | 13 ++ public/styles/elements/all.scss | 10 ++ public/styles/elements/body.scss | 15 +++ public/styles/elements/html.scss | 9 ++ public/styles/index.scss | 58 +++++++++ public/styles/objects/_app.scss | 22 ++++ public/styles/objects/_navbar.scss | 82 +++++++++++++ public/styles/settings/colors.scss | 30 +++++ public/styles/settings/responsive.scss | 43 +++++++ public/styles/settings/typography.scss | 16 +++ public/styles/tools/_responsive.scss | 30 +++++ public/styles/tools/_transform.scss | 34 ++++++ public/styles/tools/flex.scss | 159 +++++++++++++++++++++++++ public/styles/tools/list.scss | 17 +++ public/styles/tools/prefix.scss | 42 +++++++ public/styles/vendor/_fonts.scss | 8 ++ webpack.config.js | 7 +- 28 files changed, 1085 insertions(+), 6 deletions(-) create mode 100644 public/App.jsx create mode 100644 public/images/logo.svg create mode 100644 public/index.html create mode 100644 public/index.jsx create mode 100644 public/nav/navbar/Navbar.jsx create mode 100644 public/page/Page.jsx create mode 100644 public/page/home/Homepage.jsx create mode 100644 public/page/test/KitchenSinkPage.jsx create mode 100644 public/styles/components/_page.scss create mode 100644 public/styles/elements/_a.scss create mode 100644 public/styles/elements/_headings.scss create mode 100644 public/styles/elements/all.scss create mode 100644 public/styles/elements/body.scss create mode 100644 public/styles/elements/html.scss create mode 100644 public/styles/index.scss create mode 100644 public/styles/objects/_app.scss create mode 100644 public/styles/objects/_navbar.scss create mode 100644 public/styles/settings/colors.scss create mode 100644 public/styles/settings/responsive.scss create mode 100644 public/styles/settings/typography.scss create mode 100644 public/styles/tools/_responsive.scss create mode 100644 public/styles/tools/_transform.scss create mode 100644 public/styles/tools/flex.scss create mode 100644 public/styles/tools/list.scss create mode 100644 public/styles/tools/prefix.scss create mode 100644 public/styles/vendor/_fonts.scss diff --git a/package.json b/package.json index 45871e6..b50525d 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "Personal website for Dominic \"YouWish\" Masters.", "main": "private/index.js", "scripts": { + "serve": "webpack-serve --config ./webpack.config.js", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { @@ -23,7 +24,25 @@ }, "homepage": "https://github.com/YourWishes/domsPlaceNew#readme", "dependencies": { + "babel-polyfill": "^6.26.0", + "react": "^16.3.2", + "react-dom": "^16.3.2", + "react-tap-event-plugin": "^3.0.2" }, "devDependencies": { + "babel-core": "^6.26.3", + "babel-loader": "^7.1.4", + "babel-preset-env": "^1.6.1", + "babel-preset-react": "^6.24.1", + "css-loader": "^0.28.11", + "file-loader": "^1.1.11", + "html-webpack-plugin": "^3.2.0", + "node-sass": "^4.9.0", + "react-hot-loader": "^4.1.2", + "sass-loader": "^7.0.1", + "style-loader": "^0.21.0", + "url-loader": "^1.0.1", + "webpack": "^3.11.0", + "webpack-dev-server": "^2.9.1" } } diff --git a/public/App.jsx b/public/App.jsx new file mode 100644 index 0000000..5875483 --- /dev/null +++ b/public/App.jsx @@ -0,0 +1,48 @@ +// Copyright (c) 2018 Dominic Masters +// +// MIT License +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import React from 'react'; +import Navbar from './nav/navbar/Navbar'; + +//Pages +import KitchenSinkPage from './page/test/KitchenSinkPage'; +import Homepage from './page/home/Homepage'; + +class App extends React.Component { + constructor(props) { + super(props); + } + + render() { + return ( + <div className="o-app o-app--style-civil-twilight"> + <Navbar /> + <main className="o-main"> + <KitchenSinkPage /> + </main> + </div> + ); + } +} + +export default App; diff --git a/public/images/logo.svg b/public/images/logo.svg new file mode 100644 index 0000000..985f92e --- /dev/null +++ b/public/images/logo.svg @@ -0,0 +1,48 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 782.07 202.31"> + <g id="Layer_2" data-name="Layer 2" fill="#FFFFFF"> + <path + d=" + M74.64,120.85c-1.17,2-2.49,4.38-4,7.13s-3,5.6-4.44,8.56-2.88,5.86-4.2,8.71-2.46,5.28-3.41,7.29a17.55,17.55,0,0,0-1.74,4.83c-.11,1,.08,1.59.55,1.75a2.84,2.84,0,0,0,2-.4A16.35,16.35,0,0,0,62.12,157q3.33-2.53,7.68-6.42t8.64-8.08q4.28-4.2,8.08-8.32a77.57,77.57,0,0,0,6.18-7.45c1.06-1.48,2.11-2.27,3.17-2.37a2.72,2.72,0,0,1,2.61,1.26,7.16,7.16,0,0,1,1.11,4,14.13,14.13,0,0,1-1.34,6q-.48.94-2.78,4.35t-5.94,7.85q-3.65,4.44-8.32,9.19a76.76,76.76,0,0,1-9.82,8.47A44.74,44.74,0,0,1,61,171.16a17.34,17.34,0,0,1-10.14.87q-5.07-1.11-6.66-5.23a19.71,19.71,0,0,1-.79-9.82c-2.22,2-4.49,3.91-6.81,5.7a67.85,67.85,0,0,1-7,4.75,42.56,42.56,0,0,1-6.9,3.33A18.69,18.69,0,0,1,16.17,172q-7.61,0-12-5A16.74,16.74,0,0,1,0,155.23a60.76,60.76,0,0,1,3.48-19.64,79.76,79.76,0,0,1,8.56-17.28,84,84,0,0,1,11.8-14.26A98.86,98.86,0,0,1,37,93.28a66.19,66.19,0,0,1,12.6-6.81,25.74,25.74,0,0,1,10.14-2.22q5.23.31,8,2.61a10.26,10.26,0,0,1,3.57,5.63q4.27-9.19,7.53-17.43t5.62-16.48q2.39-8.23,4.12-16.64t3-17.91q.48-3.8,2.62-3.8a7.4,7.4,0,0,1,4.51,1.9,22.21,22.21,0,0,1,4.28,4.6q1.91,2.7,1.9,4.12-.48,18.06-8.24,41A307.76,307.76,0,0,1,74.64,120.85ZM15.85,148c-.32,3.69,0,6.23,1,7.6s2.4,1.82,4.36,1.35a20.67,20.67,0,0,0,7-3.73,78.85,78.85,0,0,0,8.56-7.52q4.52-4.52,9.27-10t9.19-11c.52-1.05,1-2,1.5-2.93s.93-1.77,1.35-2.61c.74-1.38,1.45-2.72,2.14-4s1.35-2.67,2-4a22.31,22.31,0,0,1,.71-3.65,18.44,18.44,0,0,0,.64-3.88,5.31,5.31,0,0,0-.8-3.17c-.58-.9-1.77-1.4-3.56-1.51A19.5,19.5,0,0,0,49.84,101a48.66,48.66,0,0,0-9.51,6.26,65.5,65.5,0,0,0-8.87,9A91.57,91.57,0,0,0,23.93,127,74.72,74.72,0,0,0,18.47,138,37.91,37.91,0,0,0,15.85,148Z + "/> + + <path + d=" + M147.21,107.54a9.77,9.77,0,0,1,6-1.35,17.31,17.31,0,0,1,6.42,1.67,10.47,10.47,0,0,1,4.43,3.8,4.47,4.47,0,0,1,.08,4.91c-.53.74-1.61,2.41-3.25,5s-3.3,5.31-5,8.16a83.33,83.33,0,0,0-4.12,7.77c-1.05,2.32-1.16,3.59-.31,3.8a10.14,10.14,0,0,0,6.18-.4,30.65,30.65,0,0,0,7.36-3.64,49.48,49.48,0,0,0,7.29-5.94,53.45,53.45,0,0,0,6.26-7.29,2.68,2.68,0,0,1,2.69-1.35,4.07,4.07,0,0,1,2.7,1.74,8.78,8.78,0,0,1,1.5,3.73,6.91,6.91,0,0,1-.87,4.59,39.31,39.31,0,0,1-6.1,7.61,48.94,48.94,0,0,1-9.74,7.61,43.83,43.83,0,0,1-11.89,4.91,22.92,22.92,0,0,1-12.51-.32,15.23,15.23,0,0,1-4.92-2.69q-3.65,4.11-7.6,7.92a74.93,74.93,0,0,1-8.16,6.81,49.09,49.09,0,0,1-8.64,5,29.27,29.27,0,0,1-8.87,2.46,34,34,0,0,1-6.34.08,18.05,18.05,0,0,1-7.92-2.38,15.74,15.74,0,0,1-6.26-7.13q-2.46-5-1.67-14.5a45.83,45.83,0,0,1,3-11.88,85.41,85.41,0,0,1,6.65-13.55A112.69,112.69,0,0,1,103.32,109a90.76,90.76,0,0,1,12-12.12A65.55,65.55,0,0,1,129,88.13a37.18,37.18,0,0,1,14.57-3.72,35,35,0,0,1,9,.71,19.76,19.76,0,0,1,6.1,2.38A10.7,10.7,0,0,1,162.18,91a9.27,9.27,0,0,1,1.35,4,9.88,9.88,0,0,1-.64,4.28,11.39,11.39,0,0,1-2.06,3.49,5.7,5.7,0,0,1-2.61,1.82,1.78,1.78,0,0,1-2.14-.72,11.43,11.43,0,0,0-6.42-4.51,16.39,16.39,0,0,0-8-.08,46.65,46.65,0,0,0-12.91,5.7,57.74,57.74,0,0,0-10.7,8.8,77.31,77.31,0,0,0-8.4,10.46,93.62,93.62,0,0,0-6.1,10.45,70.55,70.55,0,0,0-3.8,9.12,28.76,28.76,0,0,0-1.5,6.17,10.43,10.43,0,0,0,.47,5,6.92,6.92,0,0,0,2.14,3,8.11,8.11,0,0,0,2.85,1.42,10.7,10.7,0,0,0,2.77.4,14.33,14.33,0,0,0,6.42-2.14,46.73,46.73,0,0,0,7-5.15,85,85,0,0,0,7.29-7.21q3.64-4,7-8.16a32.12,32.12,0,0,1,.48-8.32,37.28,37.28,0,0,1,2.53-8.32,38.52,38.52,0,0,1,4.28-7.37A24.89,24.89,0,0,1,147.21,107.54Z + "/> + + <path + d=" + M295.68,96.61q-7.6,13.47-14,27.33l-13.23,28.6a17.55,17.55,0,0,0-1.74,4.83c-.11,1,.08,1.59.56,1.75a2.82,2.82,0,0,0,2-.4,16.35,16.35,0,0,0,2.69-1.74q3.33-2.53,7.68-6.42t8.64-8.08q4.27-4.2,8.08-8.32a77.57,77.57,0,0,0,6.18-7.45c1.06-1.48,2.11-2.27,3.17-2.37a2.71,2.71,0,0,1,2.61,1.26,7.16,7.16,0,0,1,1.11,4,14.13,14.13,0,0,1-1.34,6q-.48.94-2.78,4.35t-5.94,7.85q-3.65,4.44-8.32,9.19a76.76,76.76,0,0,1-9.82,8.47,44.54,44.54,0,0,1-10.38,5.71,17.34,17.34,0,0,1-10.14.87q-6.81-1.58-8.32-7.45t.87-14.26a136.37,136.37,0,0,1,6.5-17q3.65-7.84,7-13.95t5.86-10.14q2.54-4,3.33-5.62c.42-1,.48-1.45.16-1.51a2.33,2.33,0,0,0-1.35.4,21.64,21.64,0,0,0-1.9,1.19,10.08,10.08,0,0,0-1.5,1.19q-3.18,2.22-7.85,6.18t-9.82,9q-5.16,5.07-10.38,10.93t-9.59,11.81a88.37,88.37,0,0,0-7.29,11.64,32.73,32.73,0,0,0-3.56,10.46v-.79a9.49,9.49,0,0,1,.16-1.9,21.54,21.54,0,0,0-.79,6,4.49,4.49,0,0,1-1.51,2.85c-1,1.06-2.77,1.37-5.31.95a5.66,5.66,0,0,1-3.56-1.82,10.26,10.26,0,0,1-2.06-3.57,13.08,13.08,0,0,1-.72-4.36,17.1,17.1,0,0,1,.48-4.19,143.73,143.73,0,0,1,6.42-20.29q3.72-9.18,7.29-16.24T229.6,110a67,67,0,0,0,3.65-6.26c.42-.95.47-1.45.16-1.51a2.33,2.33,0,0,0-1.35.4,18.37,18.37,0,0,0-1.9,1.19,11.77,11.77,0,0,0-1.51,1.18,107.58,107.58,0,0,0-11.09,9q-6.81,6.09-13.71,13.54a189,189,0,0,0-13,15.69,70.3,70.3,0,0,0-9,15.37c-.11.85-.21,1.61-.32,2.3a11.61,11.61,0,0,0-.16,1.82q-.63,6-3.17,8.16t-5.54-.24a12.54,12.54,0,0,1-3.65-5.07q-1.42-3.33-1.26-9.82a41.3,41.3,0,0,1,1.82-9.67,118.51,118.51,0,0,1,4.28-12q2.61-6.33,5.86-13t6.42-12.44q3.17-5.79,5.94-10.46a66.22,66.22,0,0,1,4.67-7,16,16,0,0,1,7.13-5.47,19,19,0,0,1,7.69-1.5,6.8,6.8,0,0,1,5.07,2.06c1.11,1.27.92,2.9-.56,4.91q-4.59,6.34-8.16,11.88t-6.73,10.62q4.75-5.7,10.22-11.17a94.11,94.11,0,0,1,11.25-9.67,50.83,50.83,0,0,1,11.88-6.49,28.3,28.3,0,0,1,12.28-1.82,10.28,10.28,0,0,1,5.39,1.66,5.88,5.88,0,0,1,2.22,3.17,8,8,0,0,1,0,3.88,12.35,12.35,0,0,1-1.43,3.64c-.53.85-1.5,2.65-2.93,5.39l-5.15,10q4.75-5.53,10.06-10.77A86.69,86.69,0,0,1,266,92.17,51.24,51.24,0,0,1,277.53,86a27.13,27.13,0,0,1,11.81-1.74,10.6,10.6,0,0,1,5.55,1.66,5.84,5.84,0,0,1,2.21,3.17,8,8,0,0,1,0,3.88A12.41,12.41,0,0,1,295.68,96.61Z + "/> + + <path + d=" + M355.1,64.28a8.86,8.86,0,0,1,6.41,1,12.27,12.27,0,0,1,4,4,9.65,9.65,0,0,1,1.51,4.52c.05,1.42-.35,2.3-1.19,2.61s-2.38,1-4.59,2.06a41,41,0,0,0-6.9,4.28,39.66,39.66,0,0,0-6.73,6.58,19.49,19.49,0,0,0-4.12,8.79,49.31,49.31,0,0,0-.64,9.27q0,6.26.4,13.07t.79,12.92c.27,4.06.4,7.05.4,9q.15,10.31-4,17.11a31.84,31.84,0,0,1-23.06,15.37,24.67,24.67,0,0,1-11.72-.79,22.56,22.56,0,0,1-12.2-9,20.76,20.76,0,0,1-3.81-12.6,40.61,40.61,0,0,1,1.91-9.82,44.08,44.08,0,0,1,4.19-9.27,40.67,40.67,0,0,1,6.11-7.85,30.25,30.25,0,0,1,7.44-5.54,6.52,6.52,0,0,1,5.63-.32,16,16,0,0,1,5.31,3.09,12.73,12.73,0,0,1,3.16,4c.64,1.37.37,2.27-.79,2.69a24.28,24.28,0,0,0-11.25,7.61,28.38,28.38,0,0,0-5.7,10.62,14.36,14.36,0,0,0,.39,9.58q1.83,4.2,7.21,4.52a12.59,12.59,0,0,0,9.67-3.72A19,19,0,0,0,328.48,148a53.2,53.2,0,0,0,.87-12.21q-.24-6.65-1-13.31t-1.35-12.75a60.34,60.34,0,0,1-.32-10.38,32.15,32.15,0,0,1,4.36-14,54.73,54.73,0,0,1,8.32-10.86,46.32,46.32,0,0,1,9-7.21Q352.88,64.6,355.1,64.28Z + "/> + + <path + d=" + M479.16,25.78a15.09,15.09,0,0,1,7.21-.87,25.23,25.23,0,0,1,7.13,1.66,9.05,9.05,0,0,1,4.28,3.09c.79,1.21.34,2.3-1.34,3.25q-1.59.95-5.39,5.78t-9.19,12.44q-5.39,7.6-12.05,17.59T456,89.87q-7.12,11.17-14.5,23.06t-14.34,23.45a107.46,107.46,0,0,0,28.36-9.19,158.61,158.61,0,0,0,26-15.77,165.57,165.57,0,0,0,22.18-19.81,163.27,163.27,0,0,0,17-21.23,91.51,91.51,0,0,0,10.3-20q3.33-9.51,2.22-16.32a17.44,17.44,0,0,0-4.52-9.83,21.52,21.52,0,0,0-9-5.38A45,45,0,0,0,507,16.9a136.16,136.16,0,0,0-15.61.64,160.58,160.58,0,0,0-23.92,4.35,216.74,216.74,0,0,0-25.35,8.24,232.3,232.3,0,0,0-24.64,11.41,165.83,165.83,0,0,0-21.71,13.79A104.68,104.68,0,0,0,379.1,70.78a46.59,46.59,0,0,0-9.43,16.32,9.45,9.45,0,0,0-.55,4.2c.16,1.21.32,2.27.47,3.17a12.68,12.68,0,0,1,.24,2q0,.63-1.11.63a27.3,27.3,0,0,1-3.64-.39A15.25,15.25,0,0,1,360,94.86a13.06,13.06,0,0,1-4.36-4,10.7,10.7,0,0,1-1.51-7q1.11-11.4,9.83-22.5a109.2,109.2,0,0,1,22.42-20.92,196.29,196.29,0,0,1,30.9-17.9A263.05,263.05,0,0,1,452.39,8.9a214.32,214.32,0,0,1,35.09-7.68,119.79,119.79,0,0,1,30.9-.4q13.71,1.83,22.42,8.24t9.83,18.3a67.13,67.13,0,0,1-4,28.68A120.25,120.25,0,0,1,531.61,84.8a165.26,165.26,0,0,1-23.37,26.54,190.79,190.79,0,0,1-29,22.11,175,175,0,0,1-31.77,15.6,111.59,111.59,0,0,1-31.85,7q-8.24,14.25-14,25.51a140.85,140.85,0,0,0-7.84,17.27q-1.11,3.33-3.81,3.48a8.73,8.73,0,0,1-5.3-1.5,15.46,15.46,0,0,1-4.44-4.28,5.44,5.44,0,0,1-1-5,110,110,0,0,1,6.26-15.29q4.51-9.43,11-21.31a59.48,59.48,0,0,1-8.64-2.22,44.1,44.1,0,0,1-8-3.65,9.89,9.89,0,0,1-3.25-3.09,26.66,26.66,0,0,1-2.61-4.67,20.28,20.28,0,0,1-1.5-5.15,11.2,11.2,0,0,1,.07-4.44,3.21,3.21,0,0,1,1.91-2.37q1.43-.56,4.27.71a66.93,66.93,0,0,0,13.55,5.07,78.7,78.7,0,0,0,13.87,2.22q7-12.2,14.73-25t15.37-25Q443.83,75.05,451,64.12t12.91-19.25q5.79-8.31,9.83-13.39T479.16,25.78Z + "/> + + <path + d=" + M609.57,29A299.66,299.66,0,0,0,586.2,51.29Q575,63.17,565.2,75.37T547.3,99.3q-8.09,11.73-14,22t-9.58,18.39a56.2,56.2,0,0,0-4.44,12.83,35.27,35.27,0,0,0-.63,5.15c0,1,.16,1.58.47,1.74s.8,0,1.43-.55,1.43-1.16,2.38-1.9q3.32-2.53,7.68-6.42t8.64-8.08q4.28-4.2,8.08-8.32a62.88,62.88,0,0,0,6-7.45c1-1.48,2.14-2.27,3.25-2.37a2.8,2.8,0,0,1,2.69,1.26,7.16,7.16,0,0,1,1.11,4,14.31,14.31,0,0,1-1.35,6,47.79,47.79,0,0,1-2.85,4.35q-2.37,3.42-6,7.85T541.91,157a72.88,72.88,0,0,1-9.74,8.47,44.2,44.2,0,0,1-10.46,5.71,17.64,17.64,0,0,1-10.22.87,6.64,6.64,0,0,1-5-3.8,22,22,0,0,1-1.67-7.29A48.2,48.2,0,0,1,507.29,143a129,129,0,0,1,8.79-21,255.11,255.11,0,0,1,13.31-22.58Q537,87.9,545.32,77T562,56.2q8.4-9.83,15.69-17.43t12.84-12.44q5.54-4.83,8.24-5.78a16.93,16.93,0,0,1,7.28-1.35,8.17,8.17,0,0,1,4.84,1.67,4,4,0,0,1,1.42,3.64A7.14,7.14,0,0,1,609.57,29Z + "/> + + <path + d=" + M607.82,117.2a18.3,18.3,0,0,1,7-4,15,15,0,0,1,6.1-.55,8,8,0,0,1,3.88,1.43c.84.68,1,1.34.32,2a25.43,25.43,0,0,0-4,5.62q-2.55,4.36-5.31,9.82t-5.55,11.26q-2.78,5.77-4.67,9.74a17.67,17.67,0,0,0-1.75,4.83c-.1,1,.08,1.59.56,1.75a2.82,2.82,0,0,0,2-.4,16.35,16.35,0,0,0,2.69-1.74q3.33-2.53,7.69-6.42t8.63-8.08q4.29-4.2,8.08-8.32a77.57,77.57,0,0,0,6.18-7.45c1.06-1.48,2.12-2.27,3.17-2.37a2.73,2.73,0,0,1,2.62,1.26,7.32,7.32,0,0,1,1.11,4,14.31,14.31,0,0,1-1.35,6q-.48.94-2.77,4.35t-5.94,7.85q-3.66,4.44-8.32,9.19a77.53,77.53,0,0,1-9.83,8.47A44.54,44.54,0,0,1,608,171.16a17.33,17.33,0,0,1-10.14.87q-5.07-1.11-6.65-5.15a21.08,21.08,0,0,1-1.11-9.59,112.41,112.41,0,0,1-13.63,10.62q-7,4.6-13.31,4.6a15.72,15.72,0,0,1-6.81-1.43,16.09,16.09,0,0,1-5.15-3.8,15.07,15.07,0,0,1-3.17-5.55,20.79,20.79,0,0,1-1-6.5,60.76,60.76,0,0,1,3.49-19.64A79.73,79.73,0,0,1,559,118.31a84.1,84.1,0,0,1,11.81-14.26A98.22,98.22,0,0,1,584,93.28a65.83,65.83,0,0,1,12.59-6.81,25.82,25.82,0,0,1,10.15-2.22q7.44.31,11.72,3.72a19.24,19.24,0,0,1,6,7.61,15.22,15.22,0,0,1,1.27,7.84q-.48,3.64-2.38,4.28c-2.11.74-3.7.71-4.75-.08a16.7,16.7,0,0,1-3.09-3.09,31.63,31.63,0,0,0-3.49-3.72q-2-1.83-5.94-2a19.5,19.5,0,0,0-9.27,2.22,48.3,48.3,0,0,0-9.5,6.26,65.55,65.55,0,0,0-8.88,9,90.29,90.29,0,0,0-7.52,10.7A74.81,74.81,0,0,0,565.44,138a37.91,37.91,0,0,0-2.62,10q-.47,5.85,1.11,7.76t4.68,1a22.63,22.63,0,0,0,7.37-4.28,108.74,108.74,0,0,0,9-8.16q4.75-4.76,9.58-10.54t9.27-11.48l.16-.16A34.3,34.3,0,0,1,607.82,117.2Z + "/> + + <path + d=" + M697.83,82.66a10.86,10.86,0,0,1,5.94,1.82,11.3,11.3,0,0,1,3.48,4,16,16,0,0,1,1.59,4.43,19.79,19.79,0,0,1,.39,3.25,16.53,16.53,0,0,1-1.26,5.15,44.36,44.36,0,0,1-3.49,7.13,37,37,0,0,1-5.39,7,19,19,0,0,1-7,4.68q-3.79,1.43-5.94.87a4.6,4.6,0,0,1-3-2.06,4.87,4.87,0,0,1-.64-3.17,3.47,3.47,0,0,1,1.35-2.46,28.88,28.88,0,0,0,2.22-2,37.7,37.7,0,0,0,3.25-3.56q1.67-2.06,3.25-4.28a17.3,17.3,0,0,0,2.21-4,2.94,2.94,0,0,0-.07-2.77c-.48-.69-1.56-.88-3.25-.56q-5.07.8-11.41,5.86a91.9,91.9,0,0,0-12.36,12.13,118.21,118.21,0,0,0-10.93,15,70.79,70.79,0,0,0-7.13,14.73c-1.48,4.5-1.75,8.19-.8,11.1s3.59,4.25,7.93,4a31.67,31.67,0,0,0,11.4-3,73,73,0,0,0,11.49-6.66,105.42,105.42,0,0,0,10.7-8.63q5.07-4.68,9.19-8.8t7-7.13a36.54,36.54,0,0,1,4-3.8,3.38,3.38,0,0,1,2.93-.48,3.61,3.61,0,0,1,2.06,1.9,8.87,8.87,0,0,1,.87,3.33,9.37,9.37,0,0,1-.47,3.8,21.43,21.43,0,0,1-2.69,3.89q-2.55,3.24-6.82,7.76T696.32,151a110.81,110.81,0,0,1-12.52,9.74,96.22,96.22,0,0,1-14.1,7.84,45.46,45.46,0,0,1-15,4q-7.14.63-11.73-1.27a17.65,17.65,0,0,1-10.93-12.68,29.65,29.65,0,0,1-.8-7.92,43.49,43.49,0,0,1,3-12.2,93.07,93.07,0,0,1,7.28-14.82,117,117,0,0,1,10.86-15.13A97.78,97.78,0,0,1,666,95.18a66.46,66.46,0,0,1,15.37-9.35A37.63,37.63,0,0,1,697.83,82.66Z + "/> + + <path + d=" + M763.9,82.66a11,11,0,0,1,6.65,1.75A10.7,10.7,0,0,1,774,88.52a12.44,12.44,0,0,1,1.19,4.84,11.46,11.46,0,0,1-.4,3.88,59.54,59.54,0,0,1-3.4,8.4,42.8,42.8,0,0,1-7.69,10.93q-2.85,3-6.89,6.81t-8.64,7.53a79,79,0,0,1-9.58,6.66,40.7,40.7,0,0,1-9.59,4.2c-2.54.74-4.54.84-6,.31a5.64,5.64,0,0,1-3.09-2.22,4.26,4.26,0,0,1-.64-2.93,2,2,0,0,1,1.51-1.82,38.83,38.83,0,0,0,11.57-5.62,132.62,132.62,0,0,0,10.77-8.24q4.9-4.2,8.32-7.69c2.27-2.32,3.57-3.7,3.88-4.12a56.22,56.22,0,0,0,3.73-5.15,20.28,20.28,0,0,0,2.29-4.59,3.24,3.24,0,0,0-.15-3c-.53-.69-1.75-.88-3.65-.56a22.54,22.54,0,0,0-8.4,3.65,61.3,61.3,0,0,0-9.27,7.6,113.32,113.32,0,0,0-9.19,10.3,130.48,130.48,0,0,0-8.16,11.49,77.34,77.34,0,0,0-5.94,11.25,33.61,33.61,0,0,0-2.69,9.66,8.89,8.89,0,0,0,1.58,6.66c1.32,1.64,3.62,2.4,6.89,2.3a32.37,32.37,0,0,0,11.49-3,70.42,70.42,0,0,0,11.65-6.74,114.23,114.23,0,0,0,10.93-8.79q5.24-4.75,9.51-8.88t7.21-7.21a24.13,24.13,0,0,1,4-3.72c1-.74,1.93-.87,2.61-.4a4.52,4.52,0,0,1,1.59,2.3,11.56,11.56,0,0,1,.63,3.33,15.62,15.62,0,0,1-.08,2.85c-.1.53-1,1.88-2.61,4s-3.88,4.81-6.74,7.93-6.2,6.41-10.06,9.9a124.81,124.81,0,0,1-12.52,9.9,86.11,86.11,0,0,1-14.18,8,46.23,46.23,0,0,1-15.05,4q-7.12.63-11.73-1.27a17.71,17.71,0,0,1-10.93-12.68,29.63,29.63,0,0,1-.79-7.92,44.32,44.32,0,0,1,2.85-12.2,90.26,90.26,0,0,1,7-14.58,115.87,115.87,0,0,1,10.46-15,89,89,0,0,1,13.31-13.23,66.5,66.5,0,0,1,15.61-9.43A43.53,43.53,0,0,1,763.9,82.66Z + "/> + </g> +</svg> diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..082c3df --- /dev/null +++ b/public/index.html @@ -0,0 +1,18 @@ +<!DOCTYPE HTML> +<html lang="en"> + <head> + <title>domsPlace</title> + <meta charset="utf-8" /> + <meta name="keywords" content="domsplace, programming, gaming, anime, livestreaming, dominic, masters, dom" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" /> + <meta name="description" content="domsPlace, Personal Website of Dominic Masters as well as video games, anime, programming and more." /> + <meta name="apple-mobile-web-app-capable" content="yes" /> + </head> + + <body> + <div id="app"> + <!-- TODO: Add in a temporary loader (And a no-js error) --> + </div> + </body> +</html> diff --git a/public/index.jsx b/public/index.jsx new file mode 100644 index 0000000..9b47e9d --- /dev/null +++ b/public/index.jsx @@ -0,0 +1,36 @@ +// Copyright (c) 2018 Dominic Masters +// +// MIT License +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +import React from 'react'; +import ReactDOM from 'react-dom'; + +import App from './App'; + +import Styles from './styles/index'; + +ReactDOM.render( + <App />, + document.getElementById('app') +); diff --git a/public/nav/navbar/Navbar.jsx b/public/nav/navbar/Navbar.jsx new file mode 100644 index 0000000..a8912b6 --- /dev/null +++ b/public/nav/navbar/Navbar.jsx @@ -0,0 +1,62 @@ +// Copyright (c) 2018 Dominic Masters +// +// MIT License +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import React from 'react'; + +class Navbar extends React.Component { + constructor(props) { + super(props); + } + + render() { + return ( + <section className="o-navbar__section is-stuck"> + <nav className="o-navbar"> + + <a href="/" className="o-navbar__logo-container"> + <img + src={ require('./../../images/logo.svg') } + className="o-navbar__logo" + alt="domsPlace" + /> + </a> + + <a href="/" className="o-navbar__link"> + Home + </a> + <a href="/" className="o-navbar__link"> + Home + </a> + <a href="/" className="o-navbar__link"> + Home + </a> + <a href="/" className="o-navbar__link"> + Home + </a> + </nav> + </section> + ); + } +} + +export default Navbar; diff --git a/public/page/Page.jsx b/public/page/Page.jsx new file mode 100644 index 0000000..27dd3e0 --- /dev/null +++ b/public/page/Page.jsx @@ -0,0 +1,40 @@ +// Copyright (c) 2018 Dominic Masters +// +// MIT License +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import React from 'react'; + +class Page extends React.Component { + constructor(props) { + super(props); + } + + render() { + return ( + <div className="c-page"> + { this.props.children } + </div> + ); + } +} + +export default Page; diff --git a/public/page/home/Homepage.jsx b/public/page/home/Homepage.jsx new file mode 100644 index 0000000..85b1959 --- /dev/null +++ b/public/page/home/Homepage.jsx @@ -0,0 +1,41 @@ +// Copyright (c) 2018 Dominic Masters +// +// MIT License +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import React from 'react'; +import Page from './../Page'; + +class Homepage extends React.Component { + constructor(props) { + super(props); + } + + render() { + return ( + <Page style="home-page"> + Homepage + </Page> + ); + } +} + +export default Homepage; diff --git a/public/page/test/KitchenSinkPage.jsx b/public/page/test/KitchenSinkPage.jsx new file mode 100644 index 0000000..52d3a39 --- /dev/null +++ b/public/page/test/KitchenSinkPage.jsx @@ -0,0 +1,153 @@ +import React from 'react'; + +import Page from './../Page'; + +class KitchenSinkPage extends React.Component { + constructor(props) { + super(props); + } + + render() { + return ( + <Page> + <h1>This is the primary heading and there should only be one of these per page</h1> + <p>A small paragraph to <em>emphasis</em> and show <strong>important</strong> bits.</p> + <ul> + <li>This is a list item</li> + <li>So is this - there could be more</li> + <li>Make sure to style list items to: + <ul> + <li>Not forgetting child list items</li> + <li>Not forgetting child list items</li> + <li>Not forgetting child list items</li> + <li>Not forgetting child list items</li> + </ul></li> + <li>A couple more</li> + <li>top level list items</li> + </ul> + <p>Don't forget <strong>Ordered lists</strong>:</p> + <ol> + <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li> + <li>Aliquam tincidunt mauris eu risus. + <ol> + <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li> + <li>Aliquam tincidunt mauris eu risus.</li> + </ol> + </li> + <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li> + <li>Aliquam tincidunt mauris eu risus.</li> + </ol> + + <h2>A sub heading which is not as important as the first, but is quite imporant overall</h2> + <p> + Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. + </p> + + <table class="t1" summary="Top 10 downloaded movies in 2011 using BitTorrent, in descending order, listing number of downloads and worldwide cinema grosses"> + <caption> + Most Downloaded Movies on BitTorrent, 2011 + </caption> + <thead> + <tr> + <th>Rank</th> + <th>Movie</th> + <th>Downloads</th> + <th>Grosses</th> + </tr> + </thead> + <tfoot> + <tr> + <th colspan="4">torrentfreak.com</th> + </tr> + </tfoot> + <tbody> + <tr> + <th>1</th> + <td>Fast Five</td> + <td>9,260,000</td> + <td>$626,137,675</td> + </tr> + <tr> + <th>2</th> + <td>The Hangover II</td> + <td>8,840,000</td> + <td>$581,464,305</td> + </tr> + <tr> + <th>3</th> + <td>Thor</td> + <td>8,330,000</td> + <td>$449,326,618</td> + </tr> + <tr> + <th>4</th> + <td>Source Code</td> + <td>7,910,000</td> + <td>$123,278,618</td> + </tr> + <tr> + <th>5</th> + <td>I Am Number Four</td> + <td>7,670,000</td> + <td>$144,500,437</td> + </tr> + <tr> + <th>6</th> + <td>Sucker Punch</td> + <td>7,200,000</td> + <td>$89,792,502</td> + </tr> + <tr> + <th>7</th> + <td>127 Hours</td> + <td>6,910,000</td> + <td>$60,738,797</td> + </tr> + <tr> + <th>8</th> + <td>Rango</td> + <td>6,480,000</td> + <td>$245,155,348</td> + </tr> + <tr> + <th>9</th> + <td>The King’s Speech</td> + <td>6,250,000</td> + <td>$414,211,549</td> + </tr> + <tr> + <th>10</th> + <td>Harry Potter and the Deathly Hallows Part 2</td> + <td>6,030,000</td> + <td>$1,328,111,219</td> + </tr> + </tbody> + </table> + + <h3>A sub heading which is not as important as the second, but should be used with consideration</h3> + <p> + Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. + </p> + + <blockquote> + <p><em>This is a properly formatted blockquote, btw.</em> Measuring programming progress by lines of code is like measuring aircraft building progress by weight.</p> + <footer> + — <cite><a href="http://www.thegatesnotes.com">Bill Gates</a></cite> + </footer> + </blockquote> + + <h4>A sub heading which is not as important as the second, but should be used with consideration</h4> + <p> + Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. + </p> + <blockquote> + <p> + “Ooh - a blockquote! Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.” + </p> + </blockquote> + </Page> + ) + } +} + +export default KitchenSinkPage; diff --git a/public/styles/components/_page.scss b/public/styles/components/_page.scss new file mode 100644 index 0000000..6deba4d --- /dev/null +++ b/public/styles/components/_page.scss @@ -0,0 +1,12 @@ +/* + * Page + * Styles for the base Page elements. + * + * Dependencies: + * + * Version: + * 1.0.0 - 2018/05/05 + */ +.c-page { + background: white; +} diff --git a/public/styles/elements/_a.scss b/public/styles/elements/_a.scss new file mode 100644 index 0000000..5fb6138 --- /dev/null +++ b/public/styles/elements/_a.scss @@ -0,0 +1,19 @@ +/* + * A + * Base A/Anchor Seettings + * + * Dependencies: + * styles/settings/colors.scss + * + * Version: + * 1.0.0 - 2018/02/23 + */ +a { + text-decoration: none; + color: $s-color--link; +} + +a:hover { + text-decoration: underline; + color: $s-color--link-hover; +} diff --git a/public/styles/elements/_headings.scss b/public/styles/elements/_headings.scss new file mode 100644 index 0000000..30ca61a --- /dev/null +++ b/public/styles/elements/_headings.scss @@ -0,0 +1,13 @@ +/* + * Headings + * Styles for headings 1 through 6 + * + * Dependencies: + * styles/settings/typography.scss + * + * Version: + * 1.0.0 - 2018/05/5 + */ +h1,h2,h3,h4,h5,h6 { + font-family: $s-font--stack-headings; +} diff --git a/public/styles/elements/all.scss b/public/styles/elements/all.scss new file mode 100644 index 0000000..f4b849a --- /dev/null +++ b/public/styles/elements/all.scss @@ -0,0 +1,10 @@ +/* + * All + * Styles and changes for the ALL HTML Elements + * + * Version: + * 1.0.0 - 2018/05/03 + */ +* { + box-sizing: border-box; +} diff --git a/public/styles/elements/body.scss b/public/styles/elements/body.scss new file mode 100644 index 0000000..61da383 --- /dev/null +++ b/public/styles/elements/body.scss @@ -0,0 +1,15 @@ +/* + * Body + * Styles and changes for the body HTML element. + * + * Version: + * 1.0.0 - 2018/05/03 + */ +body { + margin: 0; + padding: 0; + min-height: 100vh; + + font-family: $s-font--stack-default; + font-size: $s-font--size--base; +} diff --git a/public/styles/elements/html.scss b/public/styles/elements/html.scss new file mode 100644 index 0000000..e73271f --- /dev/null +++ b/public/styles/elements/html.scss @@ -0,0 +1,9 @@ +/* + * HTML + * Styles and changes for the HTML, HTML element. + * + * Version: + * 1.0.0 - 2018/05/03 + */ +html { +} diff --git a/public/styles/index.scss b/public/styles/index.scss new file mode 100644 index 0000000..0945c92 --- /dev/null +++ b/public/styles/index.scss @@ -0,0 +1,58 @@ +// Copyright (c) 2018 Dominic Masters +// +// MIT License +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@charset "UTF-8"; + +//Settings +@import './settings/colors.scss'; +@import './settings/responsive.scss'; +@import './settings/typography.scss'; + +//Tools +@import './tools/flex.scss'; +@import './tools/list.scss'; +@import './tools/prefix.scss'; +@import './tools/_transform.scss'; +@import './tools/_responsive.scss'; + +//Resets + +//Elements +@import './elements/all.scss'; +@import './elements/body.scss'; +@import './elements/html.scss'; + +@import './elements/_a.scss'; +@import './elements/_headings.scss'; + +//Objects +@import './objects/_app.scss'; +@import './objects/_navbar.scss'; + +//Components +@import './components/_page.scss'; + +//Vendor +@import './vendor/_fonts.scss'; + +//Trumps diff --git a/public/styles/objects/_app.scss b/public/styles/objects/_app.scss new file mode 100644 index 0000000..4bc41ce --- /dev/null +++ b/public/styles/objects/_app.scss @@ -0,0 +1,22 @@ +/* + * App + * App styles for the app container. + * + * Dependencies: + * + * Version: + * 1.0.0 - 2018/05/03 + */ +.o-app { + min-height: 100vh; + + //Civil Twilight + &--style-civil-twilight { + //http://colorzilla.com/gradient-editor/#bea9d0+0,dab2cd+25,e7b7c5+50,e4b0a3+75,c79a97+100 + background: #bea9d0; + background: -moz-linear-gradient(top, #bea9d0 0%, #dab2cd 25%, #e7b7c5 50%, #e4b0a3 75%, #c79a97 100%); /* FF3.6-15 */ + background: -webkit-linear-gradient(top, #bea9d0 0%,#dab2cd 25%,#e7b7c5 50%,#e4b0a3 75%,#c79a97 100%); /* Chrome10-25,Safari5.1-6 */ + background: linear-gradient(to bottom, #bea9d0 0%,#dab2cd 25%,#e7b7c5 50%,#e4b0a3 75%,#c79a97 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bea9d0', endColorstr='#c79a97',GradientType=0 ); /* IE6-9 */ + } +} diff --git a/public/styles/objects/_navbar.scss b/public/styles/objects/_navbar.scss new file mode 100644 index 0000000..b0a94b0 --- /dev/null +++ b/public/styles/objects/_navbar.scss @@ -0,0 +1,82 @@ +/* + * Navbar + * Navigation bar at the top of the screen. + * + * Dependencies: + * styles/settings/colors.scss + * styles/settings/typography.scss + * styles/tools/flex.scss + * styles/tool/list.scss + * + * Version: + * 1.0.0 - 2018/05/03 + */ +.o-navbar { + @extend %t-flexbox; + @include t-align-items(stretch); + background: $s-color--navbar; + color: white; + + + &__section { + border: 1px solid blue; + + .is-stuck { + position: fixed; + width: 100%; + } + } + + //Logo + &__logo-container { + width: 100%; + padding: 0.5em; + text-align: center; + } + + &__logo { + width: 12em; + } + + //Links + &__link { + @extend %s-font--style-button; + @include t-align-items(center); + display: none; + padding: 1em; + color: $s-color--navbar__text; + + &:hover { + color: $s-color--navbar__text-hover; + } + } + + + @include t-media-query($s-xsmall-up) { + &__logo-container { + text-align: left; + } + + &__section { + padding: 1em; + } + + &__logo { + width: 10em; + } + + &__link { + @include t-flexbox(); + } + } + + @include t-media-query($s-small-up) { + &__section { + padding: 3em; + } + + &__logo { + width: 12em; + } + } +} diff --git a/public/styles/settings/colors.scss b/public/styles/settings/colors.scss new file mode 100644 index 0000000..831ed08 --- /dev/null +++ b/public/styles/settings/colors.scss @@ -0,0 +1,30 @@ +/* + * Color Settings + * Provides common color settings for use throughout the styles. + * + * Version: + * 1.0.0 - 2018/05/03 + */ + +//Pastel Colors +$s-color--pastel-pink: #FCE9F1; +$s-color--pastel-green: #E9FCF4; +$s-color--pastel-orange: #FEECE8; +$s-color--pastel-blue: #E8FAFE; +$s-color--pastel-purple: #ECE8FE; + +//Swatch Colors +$s-color--swatch-red: #FFB3BA; +$s-color--swatch-orange: #FFDFBA; +$s-color--swatch-yellow: #FFFFBA; +$s-color--swatch-green: #BAFFC9; +$s-color--swatch-blue: #BAE1FF; + +//Hyperlink Colors +$s-color--link: #FC78DE; +$s-color--link-hover: lighten($s-color--link, 10%); + +//Navbar Colors +$s-color--navbar: rgba(0, 0, 0, 0.7); +$s-color--navbar__text: white; +$s-color--navbar__text-hover: #CCC; diff --git a/public/styles/settings/responsive.scss b/public/styles/settings/responsive.scss new file mode 100644 index 0000000..26ae950 --- /dev/null +++ b/public/styles/settings/responsive.scss @@ -0,0 +1,43 @@ +/* + * Responsive Settings + * Provides settings for responsive tools + * + * Dependencies: + * + * Version: + * 1.0.1 - 2018/01/31 + */ + +//Pixel size definitions +$s-screen-xsmall: 500px; +$s-screen-small: 750px; +$s-screen-medium: 1000px; +$s-screen-large: 1250px; +$s-screen-xlarge: 1500px; + +//Size definitions +$s-xsmall: 'xsmall'; +$s-small: 'small'; +$s-medium: 'medium'; +$s-large: 'large'; +$s-xlarge: 'xlarge'; + +//Groups +$s-xsmall-up: 'xsmall-up'; +$s-small-up: 'small-up'; +$s-medium-up: 'medium-up'; +$s-large-up: 'large-up'; + +//Breakpoints +$s-breakpoints: ( + $s-xsmall '(max-width: #{$s-screen-small - 1})', + $s-small '(min-width: #{$s-screen-small}) and (max-width: #{$s-screen-medium - 1})', + $s-medium '(min-width: #{$s-screen-medium}) and (max-width: #{$s-screen-large - 1})', + $s-large '(min-width: #{$s-screen-large}) and (max-width: #{$s-screen-xlarge - 1})', + $s-xlarge '(min-width: #{$s-screen-xlarge})', + + $s-xsmall-up '(min-width: #{$s-screen-xsmall})', + $s-small-up '(min-width: #{$s-screen-small})', + $s-medium-up '(min-width: #{$s-screen-medium})', + $s-large-up '(min-width: #{$s-screen-large})' +); diff --git a/public/styles/settings/typography.scss b/public/styles/settings/typography.scss new file mode 100644 index 0000000..8e23af3 --- /dev/null +++ b/public/styles/settings/typography.scss @@ -0,0 +1,16 @@ +/* + * Typography Settings + * Provides the type variables for use throughout the theme + * + * Version: + * 1.0.0 - 2018/02/23 + */ + +$s-font--stack-default: 'Nanum Gothic', Arial, Helvetica, sans-serif; +$s-font--stack-headings: 'Bitter', serif; +$s-font--size--base: 16px; + +//Font Styles +%s-font--style-button { + font-family: $s-font--stack-headings; +} diff --git a/public/styles/tools/_responsive.scss b/public/styles/tools/_responsive.scss new file mode 100644 index 0000000..ad451a0 --- /dev/null +++ b/public/styles/tools/_responsive.scss @@ -0,0 +1,30 @@ +/* + * Responsive Tools + * Responsive tools + * + * Dependencies: + * + * Version: + * 1.0.0 - 2018/01/24 + */ + +@mixin t-media-query($media-query) { + $breakpoint-found: false; + + @each $breakpoint in $s-breakpoints { + $name: nth($breakpoint, 1); + $declaration: nth($breakpoint, 2); + + @if $media-query == $name and $declaration { + $breakpoint-found: true; + + @media only screen and #{$declaration} { + @content; + } + } + } + + @if $breakpoint-found == false { + @warn 'Breakpoint "#{$media-query}" does not exist'; + } +} diff --git a/public/styles/tools/_transform.scss b/public/styles/tools/_transform.scss new file mode 100644 index 0000000..e0704dc --- /dev/null +++ b/public/styles/tools/_transform.scss @@ -0,0 +1,34 @@ +/* + * Transform Mixins + * Provides mixins for transforms + * + * Dependencies: + * styles/tools/prefix.scss - Used to prefix browser support + * + * Version: + * 1.0.1 - 2018/01/24 + */ + +@mixin t-transform($transforms) { + @include t-prefix-property(transform, $transforms, moz o ms webkit spec); +} + +@mixin t-translate($x, $y) { + @include t-transform(translate($x, $y)); +} + +@mixin t-translate-x($x) { + @include t-transform(translateX($x)); +} + +@mixin t-translate-y($y) { + @include t-transform(translateY($y)); +} + +@mixin t-scale($amt) { + @include t-transform(scale($amt)); +} + +@mixin t-rotate($amt) { + @include t-transform(rotate($amt)); +} diff --git a/public/styles/tools/flex.scss b/public/styles/tools/flex.scss new file mode 100644 index 0000000..a1ef879 --- /dev/null +++ b/public/styles/tools/flex.scss @@ -0,0 +1,159 @@ +/* + * Flex + * Used to simplify the flexbox and it's styles + * + * Many of these mixins were taken from mastastealth/sass-flex-mixin: + * https://github.com/mastastealth/sass-flex-mixin/blob/master/_flex.scss + * + * Version: + * 1.0.0 - 2018/02/23 + */ + +//Flex/Flexbox +@mixin t-flexbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; +} + +%t-flexbox { + @include t-flexbox; +} + +//Inline Flex/Inline Flexbox +@mixin t-inline-flex { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -moz-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; +} + +%t-inline-flex { + @include t-inline-flex; +} + +//Align-items +@mixin t-align-items($value: stretch) { + @if $value == flex-start { + -webkit-box-align: start; + -ms-flex-align: start; + } @else if $value == flex-end { + -webkit-box-align: end; + -ms-flex-align: end; + } @else { + -webkit-box-align: $value; + -ms-flex-align: $value; + } + + -webkit-align-items: $value; + -moz-align-items: $value; + align-items: $value; +} + + +//Align-self +@mixin t-align-self($value: auto) { + // No Webkit Box Fallback. + -webkit-align-self: $value; + -moz-align-self: $value; + @if $value == flex-start { + -ms-flex-item-align: start; + } @else if $value == flex-end { + -ms-flex-item-align: end; + } @else { + -ms-flex-item-align: $value; + } + align-self: $value; +} + +//Align content +@mixin t-align-content($value: stretch) { + // No Webkit Box Fallback. + -webkit-align-content: $value; + -moz-align-content: $value; + @if $value == flex-start { + -ms-flex-line-pack: start; + } @else if $value == flex-end { + -ms-flex-line-pack: end; + } @else { + -ms-flex-line-pack: $value; + } + align-content: $value; +} + +//Justify Content +@mixin t-justify-content($value: flex-start) { + @if $value == flex-start { + -webkit-box-pack: start; + -ms-flex-pack: start; + } @else if $value == flex-end { + -webkit-box-pack: end; + -ms-flex-pack: end; + } @else if $value == space-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + } @else if $value == space-around { + -ms-flex-pack: distribute; + } @else { + -webkit-box-pack: $value; + -ms-flex-pack: $value; + } + -webkit-justify-content: $value; + -moz-justify-content: $value; + justify-content: $value; +} + +//Wrapping +@mixin t-flex-wrap($value: nowrap) { + // No Webkit Box fallback. + -webkit-flex-wrap: $value; + -moz-flex-wrap: $value; + @if $value == nowrap { + -ms-flex-wrap: none; + } @else { + -ms-flex-wrap: $value; + } + flex-wrap: $value; +} + +//Flowing +@mixin t-flex-flow($values: (row nowrap)) { + // No Webkit Box fallback. + -webkit-flex-flow: $values; + -moz-flex-flow: $values; + -ms-flex-flow: $values; + flex-flow: $values; +} + +//t-flex-direction +@mixin t-flex-direction($value: row) { + @if $value == row-reverse { + -webkit-box-direction: reverse; + -webkit-box-orient: horizontal; + } @else if $value == column { + -webkit-box-direction: normal; + -webkit-box-orient: vertical; + } @else if $value == column-reverse { + -webkit-box-direction: reverse; + -webkit-box-orient: vertical; + } @else { + -webkit-box-direction: normal; + -webkit-box-orient: horizontal; + } + -webkit-flex-direction: $value; + -moz-flex-direction: $value; + -ms-flex-direction: $value; + flex-direction: $value; +} + +//Flex Grow +@mixin t-flex-grow($int: 0) { + -webkit-box-flex: $int; + -webkit-flex-grow: $int; + -moz-flex-grow: $int; + -ms-flex-positive: $int; + flex-grow: $int; +} diff --git a/public/styles/tools/list.scss b/public/styles/tools/list.scss new file mode 100644 index 0000000..59f0a6d --- /dev/null +++ b/public/styles/tools/list.scss @@ -0,0 +1,17 @@ +/* + * List + * Set of tools for lists + * + * Version: + * 1.0.0 - 2018/05/05 + */ +%t-list-blank { + margin: 0; + padding: 0; +} + +%t-list-litem-blank { + margin: 0; + padding: 0; + display: inline-block; +} diff --git a/public/styles/tools/prefix.scss b/public/styles/tools/prefix.scss new file mode 100644 index 0000000..5ce5645 --- /dev/null +++ b/public/styles/tools/prefix.scss @@ -0,0 +1,42 @@ +/* + * Prefix Mixins + * Mixins used to add browser prefix to values and/or properties + * + * Version: + * 1.0.1 - 2018/02/01 + */ +@mixin t-prefix-property($property, $value, $prefixes) { + @each $prefix in $prefixes { + @if $prefix == webkit { + -webkit-#{$property}: $value; + } @else if $prefix == moz { + -moz-#{$property}: $value; + } @else if $prefix == ms { + -ms-#{$property}: $value; + } @else if $prefix == o { + -o-#{$property}: $value; + } @else if $prefix == spec { + #{$property}: $value; + } @else { + @warn 'Unrecognized prefix: #{$prefix}'; + } + } +} + +@mixin t-prefix-value($property, $value, $prefixes) { + @each $prefix in $prefixes { + @if $prefix == webkit { + #{$property}: -webkit-#{$value}; + } @else if $prefix == moz { + #{$property}: -moz-#{$value}; + } @else if $prefix == ms { + #{$property}: -ms-#{$value}; + } @else if $prefix == o { + #{$property}: -o-#{$value}; + } @else if $prefix == spec { + #{$property}: #{$value}; + } @else { + @warn 'Unrecognized prefix: #{$prefix}'; + } + } +} diff --git a/public/styles/vendor/_fonts.scss b/public/styles/vendor/_fonts.scss new file mode 100644 index 0000000..215a5d0 --- /dev/null +++ b/public/styles/vendor/_fonts.scss @@ -0,0 +1,8 @@ +/* + * Fonts + * Imports the fonts used throughout the theme. + * + * Version: + * 1.0.0 - 2018/01/23 + */ +@import url('https://fonts.googleapis.com/css?family=Bitter|Nanum+Gothic'); diff --git a/webpack.config.js b/webpack.config.js index bae3e20..f221567 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -17,7 +17,7 @@ module.exports = { ], output: { - path: __dirname + '/dist', + path: '/dist', filename: "app.js" }, @@ -54,11 +54,6 @@ module.exports = { // initialize the added webpack plugins plugins: [ - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: JSON.stringify('development') - } - }), HTMLWebpackPluginConfig, new webpack.HotModuleReplacementPlugin() ]