diff --git a/.gitignore b/.gitignore index 735cd87..e2c8060 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ dist/ *.log # Tailwind build output -src/assets/ +src/assets/css/ # Environment config .env diff --git a/.postcssrc b/.postcssrc deleted file mode 100644 index 56967fb..0000000 --- a/.postcssrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "plugins": { - "postcss-import": {}, - "tailwindcss/nesting": {}, - "tailwindcss": {}, - "autoprefixer": {}, - "cssnano": {} - } -} diff --git a/nodemon.json b/nodemon.json new file mode 100644 index 0000000..71174d3 --- /dev/null +++ b/nodemon.json @@ -0,0 +1,3 @@ +{ + "ext": "css,js,twig" +} diff --git a/package.json b/package.json index 126ed63..91c0c64 100644 --- a/package.json +++ b/package.json @@ -7,12 +7,10 @@ "license": "MIT", "scripts": { "watch": "npm-run-all --parallel 'watch:*'", - "watch:html": "parcel src/index.htm", - "watch:css": "tailwindcss -i src/style.css -o src/assets/tailwind.css", + "watch:css": "tailwindcss -i src/style.css -o src/assets/css/style.css", "watch:server": "nodemon server/index.js", "build": "npm-run-all 'build:*'", - "build:css": "tailwindcss -i src/style.css -o src/assets/tailwind.css", - "build:html": "parcel build src/index.htm", + "build:css": "tailwindcss -i src/style.css -o src/assets/css/style.css", "serve": "yarn build && node server/index.js" }, "devDependencies": { diff --git a/server/index.js b/server/index.js index 060cbf3..dab58f1 100644 --- a/server/index.js +++ b/server/index.js @@ -141,7 +141,9 @@ const port = process.env.CROWDFUNDING_SITE_PORT || 5000 // set up twing const {TwingEnvironment, TwingLoaderFilesystem} = require('twing') -let loader = new TwingLoaderFilesystem(path.resolve(__dirname, '..', 'dist')) +let loader = new TwingLoaderFilesystem([ + path.resolve(__dirname, '..', 'src'), +]) let twing = new TwingEnvironment(loader) // set up express @@ -169,7 +171,7 @@ router.get('/', async (req, res) => { total_rupees += pledge.get('amount') } - twing.render('index.html', { + twing.render('index.htm.twig', { 'goal_rupees': Number(goalRupees).toLocaleString('en-IN'), 'goal_people': Number(goalPeople).toLocaleString('en-IN'), 'progress_rupees': Number(total_rupees).toLocaleString('en-IN'), @@ -434,7 +436,7 @@ The Snipette Team` res.send('Thank you! Your pledge has been saved. Watch out for the confirmation email in your inbox :)') }) -router.use(express.static('dist')) +router.use(express.static('src/assets')) // start the listener! app.listen(port, () => { diff --git a/src/img/Analog-8-preview.pdf b/src/assets/img/Analog-8-preview.pdf similarity index 100% rename from src/img/Analog-8-preview.pdf rename to src/assets/img/Analog-8-preview.pdf diff --git a/src/img/catch-twenty-two.png b/src/assets/img/catch-twenty-two.png similarity index 100% rename from src/img/catch-twenty-two.png rename to src/assets/img/catch-twenty-two.png diff --git a/src/img/coinpup.png b/src/assets/img/coinpup.png similarity index 100% rename from src/img/coinpup.png rename to src/assets/img/coinpup.png diff --git a/src/img/header.png b/src/assets/img/header.png similarity index 100% rename from src/img/header.png rename to src/assets/img/header.png diff --git a/src/img/phonepup.png b/src/assets/img/phonepup.png similarity index 100% rename from src/img/phonepup.png rename to src/assets/img/phonepup.png diff --git a/src/img/pledgeperson.png b/src/assets/img/pledgeperson.png similarity index 100% rename from src/img/pledgeperson.png rename to src/assets/img/pledgeperson.png diff --git a/src/img/presspup.png b/src/assets/img/presspup.png similarity index 100% rename from src/img/presspup.png rename to src/assets/img/presspup.png diff --git a/src/img/sheetpup.png b/src/assets/img/sheetpup.png similarity index 100% rename from src/img/sheetpup.png rename to src/assets/img/sheetpup.png diff --git a/src/img/stackpup.png b/src/assets/img/stackpup.png similarity index 100% rename from src/img/stackpup.png rename to src/assets/img/stackpup.png diff --git a/src/img/three-pups.png b/src/assets/img/three-pups.png similarity index 100% rename from src/img/three-pups.png rename to src/assets/img/three-pups.png diff --git a/src/assets/tailwind.css b/src/assets/tailwind.css new file mode 100644 index 0000000..3e5eee1 --- /dev/null +++ b/src/assets/tailwind.css @@ -0,0 +1,491 @@ +/* +! tailwindcss v3.0.7 | MIT License | https://tailwindcss.com +*/ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: currentColor; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +*/ + +html { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: Didact Gothic, Open Sans, sans-serif; + /* 4 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font family by default. +2. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input:-ms-input-placeholder, textarea:-ms-input-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* +Ensure the default browser behavior of the `hidden` attribute. +*/ + +[hidden] { + display: none; +} + +*, ::before, ::after { + --tw-border-opacity: 1; + border-color: rgb(229 231 235 / var(--tw-border-opacity)); +} + +a { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; +} + +.donate-option > input { + display: none; +} + +.donate-option > li { + display: inline-block; + height: 100%; + width: 100%; + border-radius: 0.375rem; + border-width: 2px; + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding: 2.5rem; + text-align: center; + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity)); +} + +.donate-option > li:hover { + cursor: pointer; + --tw-border-opacity: 1; + border-color: rgb(34 197 94 / var(--tw-border-opacity)); +} + +.donate-option > input:checked + li { + --tw-border-opacity: 1; + border-color: rgb(34 197 94 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(74 222 128 / var(--tw-bg-opacity)); +} + +.input-custom { + margin-left: auto; + margin-right: auto; + display: inline-block; + overflow: visible; + border-color: inherit; + background-color: inherit; + padding: 0.75rem; + text-align: center; +} + +.donate-option > input:checked + li:hover .input-custom { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.donate-option > input:not(:checked) + li .input-custom { + display: none; +} + +.donate-option > input:checked + li .input-custom + span { + display: none; +} diff --git a/src/index.htm b/src/index.htm.twig similarity index 99% rename from src/index.htm rename to src/index.htm.twig index 4751e0b..fe8deb8 100644 --- a/src/index.htm +++ b/src/index.htm.twig @@ -4,7 +4,7 @@ Snipette Crowdfunding: Analog for Everyone - + diff --git a/tailwind.config.js b/tailwind.config.js index 8db1e46..9df3b6a 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,6 +1,6 @@ module.exports = { mode: "jit", - purge: ["./src/index.htm"], + content: ["./src/*.htm.twig"], darkMode: 'media', theme: { fontFamily: {