From 8f6998277d89f0645f3f7dddf92df7d428b2f708 Mon Sep 17 00:00:00 2001 From: nixonslovechild Date: Tue, 29 Nov 2022 12:59:47 +0000 Subject: [PATCH 1/5] Add Colour Pallete, Font, POC Styling Signed-off-by: nixonslovechild --- frontend/public/index.html | 6 ++++++ frontend/src/components/NavigationBar.tsx | 11 +++++++++++ frontend/src/utils/router.tsx | 7 ++++--- frontend/tailwind.config.js | 7 +++++++ 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/frontend/public/index.html b/frontend/public/index.html index aa069f2..abdb3ba 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -24,6 +24,12 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> + + + React App diff --git a/frontend/src/components/NavigationBar.tsx b/frontend/src/components/NavigationBar.tsx index e69de29..401d774 100644 --- a/frontend/src/components/NavigationBar.tsx +++ b/frontend/src/components/NavigationBar.tsx @@ -0,0 +1,11 @@ +import { ReactNode } from "react"; + +const NavigationBar = ({ children }: { children: ReactNode }) => { + return ( +
+ {children} +
+ ); +}; + +export default NavigationBar; diff --git a/frontend/src/utils/router.tsx b/frontend/src/utils/router.tsx index 836c67b..6039998 100644 --- a/frontend/src/utils/router.tsx +++ b/frontend/src/utils/router.tsx @@ -1,4 +1,5 @@ import { createBrowserRouter } from "react-router-dom"; +import NavigationBar from "../components/NavigationBar"; const router = createBrowserRouter([ { path: "/", @@ -7,9 +8,9 @@ const router = createBrowserRouter([ { path: "/login", element: ( -
- login plz ty 4 credit card details -
+ +
Boulder.
+
), }, ]); diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index 37cc651..0cfef81 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -2,6 +2,13 @@ module.exports = { content: ["./src/**/*.{js,jsx,ts,tsx}"], theme: { + colors: { + "boulder-beige": "#D4BE98", + "boulder-brown": "#282828", + }, + fontFamily: { + serif: ["Donegal One"], + }, extend: {}, }, plugins: [], From 7545b0810ab697d7a2548fa2483a3dd57fddee61 Mon Sep 17 00:00:00 2001 From: nixonslovechild Date: Tue, 29 Nov 2022 13:09:13 +0000 Subject: [PATCH 2/5] Font Selfhost Signed-off-by: nixonslovechild --- frontend/public/fonts/DonegalOne-Regular.ttf | Bin 0 -> 54908 bytes frontend/public/index.html | 6 ------ frontend/src/index.css | 8 ++++++++ frontend/src/utils/router.tsx | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 frontend/public/fonts/DonegalOne-Regular.ttf diff --git a/frontend/public/fonts/DonegalOne-Regular.ttf b/frontend/public/fonts/DonegalOne-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8f7f694e8a82cca76c191e7f5505cfa668a52730 GIT binary patch literal 54908 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 - - - React App diff --git a/frontend/src/index.css b/frontend/src/index.css index 9e4b1f1..df897c2 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -2,6 +2,14 @@ @tailwind components; @tailwind utilities; +@layer base { + @font-face { + font-family: Donegal One; + font-weight: 400; + src: url(../public/fonts/DonegalOne-Regular.ttf) format("ttf"); + } +} + body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", diff --git a/frontend/src/utils/router.tsx b/frontend/src/utils/router.tsx index 6039998..551d4f2 100644 --- a/frontend/src/utils/router.tsx +++ b/frontend/src/utils/router.tsx @@ -9,7 +9,7 @@ const router = createBrowserRouter([ path: "/login", element: ( -
Boulder.
+
boulder.
), }, From ad69b809662dfc04659e6c6ca84eda9146326464 Mon Sep 17 00:00:00 2001 From: nixonslovechild Date: Wed, 30 Nov 2022 07:33:20 +0000 Subject: [PATCH 3/5] Add Styles & Navigation Bar Signed-off-by: nixonslovechild --- frontend/src/assets/images/BoulderLogo-1x.png | Bin 0 -> 2181 bytes frontend/src/assets/images/BoulderLogo-2x.png | Bin 0 -> 4047 bytes frontend/src/assets/images/BoulderLogo-3x.png | Bin 0 -> 5880 bytes frontend/src/components/NavigationBar.tsx | 35 ++++++++++++++++-- frontend/src/components/layouts/default.tsx | 15 ++++++++ frontend/src/routes/home.tsx | 11 ++++++ frontend/src/routes/login.tsx | 11 ++++++ frontend/src/utils/router.tsx | 10 ++--- 8 files changed, 73 insertions(+), 9 deletions(-) create mode 100644 frontend/src/assets/images/BoulderLogo-1x.png create mode 100644 frontend/src/assets/images/BoulderLogo-2x.png create mode 100644 frontend/src/assets/images/BoulderLogo-3x.png create mode 100644 frontend/src/components/layouts/default.tsx create mode 100644 frontend/src/routes/home.tsx create mode 100644 frontend/src/routes/login.tsx diff --git a/frontend/src/assets/images/BoulderLogo-1x.png b/frontend/src/assets/images/BoulderLogo-1x.png new file mode 100644 index 0000000000000000000000000000000000000000..321629d44715f63fbcf82bd67182e894f381015f GIT binary patch literal 2181 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 B(Lw+K literal 0 HcmV?d00001 diff --git a/frontend/src/assets/images/BoulderLogo-3x.png b/frontend/src/assets/images/BoulderLogo-3x.png new file mode 100644 index 0000000000000000000000000000000000000000..59adf0313621bb2e89506f53cf563722c7285b0f GIT binary patch literal 5880 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 Q@I*C%j;4VI5^NjsKWQC8v;Y7A literal 0 HcmV?d00001 diff --git a/frontend/src/components/NavigationBar.tsx b/frontend/src/components/NavigationBar.tsx index 401d774..fe60d67 100644 --- a/frontend/src/components/NavigationBar.tsx +++ b/frontend/src/components/NavigationBar.tsx @@ -1,9 +1,38 @@ import { ReactNode } from "react"; +import { Link } from "react-router-dom"; +import BoulderLogo from "../assets/images/BoulderLogo-2x.png"; -const NavigationBar = ({ children }: { children: ReactNode }) => { +const NavigationBar = ({ + children = null, +}: { + children?: ReactNode; +}): JSX.Element => { return ( -
- {children} +
+
+ + Site Logo + +
+
+
    +
  • + +
  • + +
  • + +
  • + +
  • + +
  • + +
  • + +
  • +
+
); }; diff --git a/frontend/src/components/layouts/default.tsx b/frontend/src/components/layouts/default.tsx new file mode 100644 index 0000000..c240300 --- /dev/null +++ b/frontend/src/components/layouts/default.tsx @@ -0,0 +1,15 @@ +import { ReactNode } from "react"; +import NavigationBar from "../NavigationBar"; + +const defaultLayout = ({ children }: { children: ReactNode }) => { + return ( + <> +
+ + {children} +
+ + ); +}; + +export default defaultLayout; diff --git a/frontend/src/routes/home.tsx b/frontend/src/routes/home.tsx new file mode 100644 index 0000000..1ff90df --- /dev/null +++ b/frontend/src/routes/home.tsx @@ -0,0 +1,11 @@ +import DefaultLayout from "../components/layouts/default"; + +function Home() { + return ( + +
this is the home page
+
+ ); +} + +export default Home; diff --git a/frontend/src/routes/login.tsx b/frontend/src/routes/login.tsx new file mode 100644 index 0000000..de526e6 --- /dev/null +++ b/frontend/src/routes/login.tsx @@ -0,0 +1,11 @@ +import DefaultLayout from "../components/layouts/default"; + +function Login() { + return ( + +
this is the login page
+
+ ); +} + +export default Login; diff --git a/frontend/src/utils/router.tsx b/frontend/src/utils/router.tsx index 551d4f2..bda4ec0 100644 --- a/frontend/src/utils/router.tsx +++ b/frontend/src/utils/router.tsx @@ -1,17 +1,15 @@ import { createBrowserRouter } from "react-router-dom"; import NavigationBar from "../components/NavigationBar"; +import Home from "../routes/home"; +import Login from "../routes/login"; const router = createBrowserRouter([ { path: "/", - element:
hello monsoir dicky
, + element: , }, { path: "/login", - element: ( - -
boulder.
-
- ), + element: , }, ]); From 25d7ccd743a03294e4433c398d9e44dcdcc2d1cf Mon Sep 17 00:00:00 2001 From: nixonslovechild Date: Mon, 12 Dec 2022 15:03:52 +0000 Subject: [PATCH 4/5] Add Additional styling & colours for login form Signed-off-by: nixonslovechild --- frontend/src/components/NavigationBar.tsx | 4 +-- frontend/src/components/layouts/default.tsx | 4 ++- frontend/src/index.css | 8 ++--- frontend/src/routes/login.tsx | 40 ++++++++++++++++++++- frontend/tailwind.config.js | 2 ++ 5 files changed, 50 insertions(+), 8 deletions(-) diff --git a/frontend/src/components/NavigationBar.tsx b/frontend/src/components/NavigationBar.tsx index fe60d67..0ec3c77 100644 --- a/frontend/src/components/NavigationBar.tsx +++ b/frontend/src/components/NavigationBar.tsx @@ -8,13 +8,13 @@ const NavigationBar = ({ children?: ReactNode; }): JSX.Element => { return ( -
+
Site Logo
-
+
  • diff --git a/frontend/src/components/layouts/default.tsx b/frontend/src/components/layouts/default.tsx index c240300..84466d3 100644 --- a/frontend/src/components/layouts/default.tsx +++ b/frontend/src/components/layouts/default.tsx @@ -6,7 +6,9 @@ const defaultLayout = ({ children }: { children: ReactNode }) => { <>
    - {children} +
    + {children} +
    ); diff --git a/frontend/src/index.css b/frontend/src/index.css index df897c2..4418160 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -6,15 +6,15 @@ @font-face { font-family: Donegal One; font-weight: 400; - src: url(../public/fonts/DonegalOne-Regular.ttf) format("ttf"); + src: url(../public/fonts/DonegalOne-Regular.ttf); } } body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", - "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; + font-family: "Donegal One", -apple-system, BlinkMacSystemFont, "Segoe UI", + "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", + "Helvetica Neue", sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } diff --git a/frontend/src/routes/login.tsx b/frontend/src/routes/login.tsx index de526e6..a30247a 100644 --- a/frontend/src/routes/login.tsx +++ b/frontend/src/routes/login.tsx @@ -3,7 +3,45 @@ import DefaultLayout from "../components/layouts/default"; function Login() { return ( -
    this is the login page
    +
    +

    Login

    +
    +
    + + + + + + + +
    +
    +
    ); } diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index 0cfef81..323ff5c 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -5,6 +5,8 @@ module.exports = { colors: { "boulder-beige": "#D4BE98", "boulder-brown": "#282828", + "boulder-blue": "#7DAEA3", + "boulder-orange": "#D8A657", }, fontFamily: { serif: ["Donegal One"], From d98fbe97681f0410e8f5dafef925b780b3828419 Mon Sep 17 00:00:00 2001 From: z m Date: Wed, 21 Dec 2022 19:00:00 +0000 Subject: [PATCH 5/5] Local Mac Changes Signed-off-by: z m --- .ruby-version | 1 + .../src/components/buttons/BaseButton.tsx | 36 ++++++++ frontend/src/routes/login.tsx | 22 ++--- frontend/src/utils/useFunctions/useToggle.ts | 9 ++ node_modules/.yarn-integrity | 16 ++++ node_modules/clsx/clsx.d.ts | 6 ++ node_modules/clsx/dist/clsx.js | 1 + node_modules/clsx/dist/clsx.m.js | 1 + node_modules/clsx/dist/clsx.min.js | 1 + node_modules/clsx/license | 9 ++ node_modules/clsx/package.json | 37 ++++++++ node_modules/clsx/readme.md | 88 +++++++++++++++++++ package.json | 5 ++ yarn.lock | 8 ++ 14 files changed, 229 insertions(+), 11 deletions(-) create mode 100644 .ruby-version create mode 100644 frontend/src/components/buttons/BaseButton.tsx create mode 100644 frontend/src/utils/useFunctions/useToggle.ts create mode 100644 node_modules/.yarn-integrity create mode 100644 node_modules/clsx/clsx.d.ts create mode 100644 node_modules/clsx/dist/clsx.js create mode 100644 node_modules/clsx/dist/clsx.m.js create mode 100644 node_modules/clsx/dist/clsx.min.js create mode 100644 node_modules/clsx/license create mode 100644 node_modules/clsx/package.json create mode 100644 node_modules/clsx/readme.md create mode 100644 package.json create mode 100644 yarn.lock diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..ef538c2 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.1.2 diff --git a/frontend/src/components/buttons/BaseButton.tsx b/frontend/src/components/buttons/BaseButton.tsx new file mode 100644 index 0000000..3bd552f --- /dev/null +++ b/frontend/src/components/buttons/BaseButton.tsx @@ -0,0 +1,36 @@ +import clsx from 'clsx' +import { MouseEventHandler, SetStateAction } from 'react' +import useToggle from "../../utils/useFunctions/useToggle" + + interface Icolors { + [key: string]: string + } + const colors: Icolors = { + orange: "bg-boulder-orange", + blue: "bg-boulder-blue", + pink: "bg-boulder-pink", + brown: "bg-boulder-orange", + beige: "bg-boulder-beige" + } + +const BaseButton = ({ onClick = () => {}, color = "bg-boulder-orange", children } : {onClick: () => void, color: string, children: string} + + ) => { + const [isToggled, toggleValueTest] = useToggle(false) + + const displayColor = isToggled ? color : 'bg-boulder-blue' +const handleClick: MouseEventHandler= (e) => { + e.preventDefault() + toggleValueTest() + console.log(isToggled) + +} + const buttonStyles: string = clsx(colors[color]) + return ( + + ) + } + + + +export default BaseButton \ No newline at end of file diff --git a/frontend/src/routes/login.tsx b/frontend/src/routes/login.tsx index a30247a..16edf35 100644 --- a/frontend/src/routes/login.tsx +++ b/frontend/src/routes/login.tsx @@ -1,44 +1,44 @@ import DefaultLayout from "../components/layouts/default"; +import BaseButton from "../components/buttons/BaseButton"; function Login() { return ( -
    -

    Login

    -
    +
    +

    Login

    +
    - + {}} color="bg-boulder-orange" children="how u doing`"/>
    diff --git a/frontend/src/utils/useFunctions/useToggle.ts b/frontend/src/utils/useFunctions/useToggle.ts new file mode 100644 index 0000000..957b71c --- /dev/null +++ b/frontend/src/utils/useFunctions/useToggle.ts @@ -0,0 +1,9 @@ +import { useState } from 'react' + +export const useToggle = (initValue: boolean = false) => { + const [value, setValue] = useState(initValue) + const toggleValue = () => setValue((x) => !x) + return [ value, toggleValue] as const +} + +export default useToggle diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity new file mode 100644 index 0000000..7fd8626 --- /dev/null +++ b/node_modules/.yarn-integrity @@ -0,0 +1,16 @@ +{ + "systemParams": "darwin-arm64-93", + "modulesFolders": [ + "node_modules" + ], + "flags": [], + "linkedModules": [], + "topLevelPatterns": [ + "clsx@^1.2.1" + ], + "lockfileEntries": { + "clsx@^1.2.1": "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + }, + "files": [], + "artifacts": {} +} \ No newline at end of file diff --git a/node_modules/clsx/clsx.d.ts b/node_modules/clsx/clsx.d.ts new file mode 100644 index 0000000..f557360 --- /dev/null +++ b/node_modules/clsx/clsx.d.ts @@ -0,0 +1,6 @@ +export type ClassValue = ClassArray | ClassDictionary | string | number | null | boolean | undefined; +export type ClassDictionary = Record; +export type ClassArray = ClassValue[]; + +export declare function clsx(...inputs: ClassValue[]): string; +export default clsx; diff --git a/node_modules/clsx/dist/clsx.js b/node_modules/clsx/dist/clsx.js new file mode 100644 index 0000000..2090f74 --- /dev/null +++ b/node_modules/clsx/dist/clsx.js @@ -0,0 +1 @@ +function e(r){var o,t,f="";if("string"==typeof r||"number"==typeof r)f+=r;else if("object"==typeof r)if(Array.isArray(r))for(o=0;o (lukeed.com) + +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. diff --git a/node_modules/clsx/package.json b/node_modules/clsx/package.json new file mode 100644 index 0000000..8f2f743 --- /dev/null +++ b/node_modules/clsx/package.json @@ -0,0 +1,37 @@ +{ + "name": "clsx", + "version": "1.2.1", + "repository": "lukeed/clsx", + "description": "A tiny (228B) utility for constructing className strings conditionally.", + "module": "dist/clsx.m.js", + "unpkg": "dist/clsx.min.js", + "main": "dist/clsx.js", + "types": "clsx.d.ts", + "license": "MIT", + "author": { + "name": "Luke Edwards", + "email": "luke.edwards05@gmail.com", + "url": "https://lukeed.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "build": "node bin", + "test": "uvu -r esm test" + }, + "files": [ + "*.d.ts", + "dist" + ], + "keywords": [ + "classes", + "classname", + "classnames" + ], + "devDependencies": { + "esm": "3.2.25", + "terser": "4.8.0", + "uvu": "0.5.4" + } +} diff --git a/node_modules/clsx/readme.md b/node_modules/clsx/readme.md new file mode 100644 index 0000000..cba8d87 --- /dev/null +++ b/node_modules/clsx/readme.md @@ -0,0 +1,88 @@ +# clsx [![CI](https://github.com/lukeed/clsx/workflows/CI/badge.svg)](https://github.com/lukeed/clsx/actions?query=workflow%3ACI) [![codecov](https://badgen.net/codecov/c/github/lukeed/clsx)](https://codecov.io/gh/lukeed/clsx) + +> A tiny (228B) utility for constructing `className` strings conditionally.
    Also serves as a [faster](/bench) & smaller drop-in replacement for the `classnames` module. + +This module is available in three formats: + +* **ES Module**: `dist/clsx.m.js` +* **CommonJS**: `dist/clsx.js` +* **UMD**: `dist/clsx.min.js` + + +## Install + +``` +$ npm install --save clsx +``` + + +## Usage + +```js +import clsx from 'clsx'; +// or +import { clsx } from 'clsx'; + +// Strings (variadic) +clsx('foo', true && 'bar', 'baz'); +//=> 'foo bar baz' + +// Objects +clsx({ foo:true, bar:false, baz:isTrue() }); +//=> 'foo baz' + +// Objects (variadic) +clsx({ foo:true }, { bar:false }, null, { '--foobar':'hello' }); +//=> 'foo --foobar' + +// Arrays +clsx(['foo', 0, false, 'bar']); +//=> 'foo bar' + +// Arrays (variadic) +clsx(['foo'], ['', 0, false, 'bar'], [['baz', [['hello'], 'there']]]); +//=> 'foo bar baz hello there' + +// Kitchen sink (with nesting) +clsx('foo', [1 && 'bar', { baz:false, bat:null }, ['hello', ['world']]], 'cya'); +//=> 'foo bar hello world cya' +``` + + +## API + +### clsx(...input) +Returns: `String` + +#### input +Type: `Mixed` + +The `clsx` function can take ***any*** number of arguments, each of which can be an Object, Array, Boolean, or String. + +> **Important:** _Any_ falsey values are discarded!
    Standalone Boolean values are discarded as well. + +```js +clsx(true, false, '', null, undefined, 0, NaN); +//=> '' +``` + +## Benchmarks + +For snapshots of cross-browser results, check out the [`bench`](/bench) directory~! + +## Support + +All versions of Node.js are supported. + +All browsers that support [`Array.isArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray#Browser_compatibility) are supported (IE9+). + +>**Note:** For IE8 support and older, please install `clsx@1.0.x` and beware of [#17](https://github.com/lukeed/clsx/issues/17). + + +## Related + +- [obj-str](https://github.com/lukeed/obj-str) - A smaller (96B) and similiar utility that only works with Objects. + +## License + +MIT © [Luke Edwards](https://lukeed.com) diff --git a/package.json b/package.json new file mode 100644 index 0000000..f6281e5 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "clsx": "^1.2.1" + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..40e6040 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==