├── .gitignore ├── docs ├── fonts │ ├── FiraGO-Bold.arabic.woff2 │ ├── FiraGO-Bold.greek.woff2 │ ├── FiraGO-Bold.hebrew.woff2 │ ├── FiraGO-Bold.latin.woff2 │ ├── FiraGO-Bold.shared.woff2 │ ├── FiraGO-Bold.thai.woff2 │ ├── FiraGO-Book.arabic.woff2 │ ├── FiraGO-Book.greek.woff2 │ ├── FiraGO-Book.hebrew.woff2 │ ├── FiraGO-Book.latin.woff2 │ ├── FiraGO-Book.shared.woff2 │ ├── FiraGO-Book.thai.woff2 │ ├── FiraGO-Medium.thai.woff2 │ ├── FiraGO-Bold.cyrillic.woff2 │ ├── FiraGO-Bold.georgian.woff2 │ ├── FiraGO-Bold.special.woff2 │ ├── FiraGO-Book.cyrillic.woff2 │ ├── FiraGO-Book.georgian.woff2 │ ├── FiraGO-Book.special.woff2 │ ├── FiraGO-Medium.arabic.woff2 │ ├── FiraGO-Medium.greek.woff2 │ ├── FiraGO-Medium.hebrew.woff2 │ ├── FiraGO-Medium.latin.woff2 │ ├── FiraGO-Medium.shared.woff2 │ ├── FiraGO-Regular.greek.woff2 │ ├── FiraGO-Regular.latin.woff2 │ ├── FiraGO-Regular.thai.woff2 │ ├── FiraGO-SemiBold.thai.woff2 │ ├── original │ │ ├── FiraGO-Bold.woff2 │ │ ├── FiraGO-Book.woff2 │ │ ├── FiraGO-Medium.woff2 │ │ ├── FiraGO-Regular.woff2 │ │ └── FiraGO-SemiBold.woff2 │ ├── FiraGO-Bold.devanagari.woff2 │ ├── FiraGO-Bold.latin-ext.woff2 │ ├── FiraGO-Book.devanagari.woff2 │ ├── FiraGO-Book.latin-ext.woff2 │ ├── FiraGO-Medium.cyrillic.woff2 │ ├── FiraGO-Medium.georgian.woff2 │ ├── FiraGO-Medium.latin-ext.woff2 │ ├── FiraGO-Medium.special.woff2 │ ├── FiraGO-Regular.arabic.woff2 │ ├── FiraGO-Regular.cyrillic.woff2 │ ├── FiraGO-Regular.georgian.woff2 │ ├── FiraGO-Regular.hebrew.woff2 │ ├── FiraGO-Regular.shared.woff2 │ ├── FiraGO-Regular.special.woff2 │ ├── FiraGO-SemiBold.arabic.woff2 │ ├── FiraGO-SemiBold.greek.woff2 │ ├── FiraGO-SemiBold.hebrew.woff2 │ ├── FiraGO-SemiBold.latin.woff2 │ ├── FiraGO-SemiBold.shared.woff2 │ ├── FiraGO-SemiBold.special.woff2 │ ├── FiraGO-Medium.devanagari.woff2 │ ├── FiraGO-Regular.devanagari.woff2 │ ├── FiraGO-Regular.latin-ext.woff2 │ ├── FiraGO-SemiBold.cyrillic.woff2 │ ├── FiraGO-SemiBold.georgian.woff2 │ ├── FiraGO-SemiBold.latin-ext.woff2 │ └── FiraGO-SemiBold.devanagari.woff2 ├── fira-go.css └── index.html ├── postcss.config.js ├── package.json ├── tailwind.css ├── README.md └── tailwind.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore these so they're not stored in source control 2 | .vscode 3 | /node_modules/ 4 | /docs/build.css 5 | /tmp/ 6 | -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.arabic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.arabic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.greek.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.greek.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.hebrew.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.hebrew.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.latin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.latin.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.shared.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.shared.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.thai.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.thai.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.arabic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.arabic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.greek.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.greek.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.hebrew.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.hebrew.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.latin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.latin.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.shared.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.shared.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.thai.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.thai.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.thai.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.thai.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.cyrillic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.cyrillic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.georgian.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.georgian.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.special.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.special.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.cyrillic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.cyrillic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.georgian.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.georgian.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.special.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.special.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.arabic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.arabic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.greek.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.greek.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.hebrew.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.hebrew.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.latin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.latin.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.shared.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.shared.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.greek.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.greek.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.latin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.latin.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.thai.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.thai.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.thai.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.thai.woff2 -------------------------------------------------------------------------------- /docs/fonts/original/FiraGO-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/original/FiraGO-Bold.woff2 -------------------------------------------------------------------------------- /docs/fonts/original/FiraGO-Book.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/original/FiraGO-Book.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.devanagari.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.devanagari.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Bold.latin-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Bold.latin-ext.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.devanagari.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.devanagari.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Book.latin-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Book.latin-ext.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.cyrillic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.cyrillic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.georgian.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.georgian.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.latin-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.latin-ext.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.special.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.special.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.arabic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.arabic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.cyrillic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.cyrillic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.georgian.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.georgian.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.hebrew.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.hebrew.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.shared.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.shared.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.special.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.special.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.arabic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.arabic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.greek.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.greek.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.hebrew.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.hebrew.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.latin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.latin.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.shared.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.shared.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.special.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.special.woff2 -------------------------------------------------------------------------------- /docs/fonts/original/FiraGO-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/original/FiraGO-Medium.woff2 -------------------------------------------------------------------------------- /docs/fonts/original/FiraGO-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/original/FiraGO-Regular.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Medium.devanagari.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Medium.devanagari.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.devanagari.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.devanagari.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-Regular.latin-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-Regular.latin-ext.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.cyrillic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.cyrillic.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.georgian.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.georgian.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.latin-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.latin-ext.woff2 -------------------------------------------------------------------------------- /docs/fonts/original/FiraGO-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/original/FiraGO-SemiBold.woff2 -------------------------------------------------------------------------------- /docs/fonts/FiraGO-SemiBold.devanagari.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toreylittlefield/my-custom-tailwind-resume/HEAD/docs/fonts/FiraGO-SemiBold.devanagari.woff2 -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | const purgecss = require("@fullhuman/postcss-purgecss")({ 2 | content: ["./docs/*.html"], 3 | defaultExtractor: content => content.match(/[A-Za-z0-9-_:/.]+/g) || [] 4 | }); 5 | 6 | module.exports = { 7 | plugins: [ 8 | require("postcss-import"), 9 | require("tailwindcss"), 10 | require("autoprefixer"), 11 | ...process.env.NODE_ENV === "build" ? 12 | [purgecss, require("cssnano")] : [] 13 | ] 14 | }; 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "universal-resume-template", 3 | "version": "3.1.0", 4 | "description": "Minimal and formal résumé (CV) website template for print, mobile, and desktop. https://bit.ly/ur_demo", 5 | "homepage": "https://github.com/WebPraktikos/universal-resume", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/WebPraktikos/universal-resume.git" 9 | }, 10 | "bugs": { 11 | "url": "https://github.com/WebPraktikos/universal-resume/issues" 12 | }, 13 | "license": "NonCommercial-ShareAlike 1.0 Generic", 14 | "author": "Torey Littlefield ", 15 | "scripts": { 16 | "serve": "concurrently \"postcss ./tailwind.css -o docs/build.css --watch\" \"live-server ./docs \"", 17 | "build": "cross-env NODE_ENV=build postcss ./tailwind.css -o ./docs/build.css" 18 | }, 19 | "dependencies": { 20 | "@fullhuman/postcss-purgecss": "^2.0.6", 21 | "autoprefixer": "^9.7.4", 22 | "concurrently": "^5.1.0", 23 | "cross-env": "^7.0.0", 24 | "cssnano": "^4.1.10", 25 | "live-server": "^1.2.1", 26 | "postcss-cli": "^7.0.0", 27 | "postcss-import": "^12.0.1", 28 | "tailwindcss": "^1.2.0" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tailwind.css: -------------------------------------------------------------------------------- 1 | @import "docs/fira-go.css"; 2 | @import "tailwindcss/base"; 3 | @import "tailwindcss/components"; 4 | @import "tailwindcss/utilities"; 5 | 6 | @screen print { 7 | @page { 8 | margin-top: 0in; 9 | margin-bottom: 0in; 10 | margin-left: 0in; 11 | margin-right: 0in; 12 | } 13 | 14 | body { 15 | -webkit-print-color-adjust: exact !important; 16 | color-adjust: exact !important; 17 | color: black !important; 18 | } 19 | 20 | .page { 21 | padding: theme(spacing.16) theme(spacing.16) !important; 22 | } 23 | 24 | .initial { 25 | color: transparent !important; 26 | text-shadow: 0 0 0 #fff !important; 27 | } 28 | 29 | /* h1, h2, h3, p, li { 30 | color: black !important; 31 | } */ 32 | 33 | html { 34 | font-size: 12.288px !important; 35 | } 36 | } 37 | 38 | html { 39 | font-size: 13.176471px; 40 | } 41 | 42 | /* For Letter size */ 43 | 44 | @screen sm { 45 | html { 46 | font-size: calc( 13.176471px + (16 - 13.176471) * (100vw - 640px) / (833 - 640) ); 47 | } 48 | } 49 | 50 | @screen md { 51 | html { 52 | font-size: calc( 12.288px + (16 - 12.288) * (100vw - 833px) / (1079.5 - 833) ); 53 | } 54 | } 55 | 56 | /* For A4 size */ 57 | 58 | /* @screen sm { 59 | html { 60 | font-size: calc( 13.176471px + (16 - 13.176471) * (100vw - 640px) / (811 - 640) ); 61 | } 62 | } 63 | 64 | @screen md { 65 | html { 66 | font-size: calc( 12.288px + (16 - 12.288) * (100vw - 811px) / (1051 - 811) ); 67 | } 68 | } */ 69 | 70 | @screen lg { 71 | html { 72 | font-size: 16px; 73 | } 74 | } 75 | 76 | .initials-container { 77 | min-width: 2.31rem; 78 | } 79 | 80 | body .icon-parent::before { 81 | content: "A"; 82 | width: 0px; 83 | visibility: hidden; 84 | display: inline-block; 85 | } 86 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Hope You Enjoyed My Resume! 2 | --------- 3 | 4 | This custom resume was built with HTML, [Tailwind CSS](https://tailwindcss.com/), and the [Universal Résumé Template](https://github.com/WebPraktikos/universal-resume) 5 | 6 | Check Out My Finished Resume 7 | -------- 8 | Hosted with Netlify & Mobile Responsive [Torey Littlefield - Resume](https://resume-torey-littlefield.netlify.app/) 9 | 10 | How to run it 11 | --------- 12 | 13 | Navigate to the base directory: 14 | 15 | ``` 16 | cd universal-resume 17 | ``` 18 | 19 | Install the dependencies: 20 | 21 | ``` 22 | npm install 23 | ``` 24 | 25 | Start the development server: 26 | 27 | ``` 28 | npm run serve 29 | ``` 30 | 31 | Only generate CSS that is used on the page which results in a much smaller file size: 32 | 33 | ``` 34 | npm run build 35 | ``` 36 | 37 | Starting Point 38 | --------- 39 | 40 | `docs/index.html` is the main content file. By copying HTML: add pages, sections, subsection, and other parts. 41 | 42 | `npm run build` will make the **docs** directory ready for drag-n-drop to, for example, https://app.netlify.com/drop (free registration required beforehand). 43 | 44 | Also, with additionally running `git add docs/styles.css -f` and committing changes, it’s ready for push to GitHub and integration with GitHub Pages. GitHub Pages are free for public repositories. Under your repository name, not profile, click “Settings” and enable GitHub Pages by navigating to: `Options → GitHub Pages → Source → /docs`. 45 | 46 | Tailwind CSS 47 | --------- 48 | 49 | Tailwind CSS is a highly customizable, low-level CSS framework that gives you all of the building blocks you need to build bespoke designs without any annoying opinionated styles you have to fight to override. It has a great [documentation](https://tailwindcss.com/docs/installation). 50 | 51 | 52 | Build Your Own Resume 53 | -------- 54 | 55 | - Made With Universal Résumé Template 56 | - Credit To @webpraktikos For The Repo 57 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | const defaultTheme = require("tailwindcss/defaultTheme"); 2 | const plugin = require("tailwindcss/plugin"); 3 | 4 | module.exports = { 5 | theme: { 6 | /* For Letter size */ 7 | screens: { 8 | print: {"raw": "print"}, 9 | xsm: "500px", 10 | sm: "640px", 11 | md: "833px", 12 | lg: "1079.5px", 13 | xl: "1280px", 14 | }, 15 | /* For A4 size */ 16 | // screens: { 17 | // screen: {"raw": "screen"}, 18 | // print: {"raw": "print"}, 19 | // xsm: "500px", 20 | // sm: "640px", 21 | // md: "811px", 22 | // lg: "1051px", 23 | // xl: "1280px", 24 | // }, 25 | extend: { 26 | fontFamily: { 27 | "firago": ["FiraGO", ...defaultTheme.fontFamily.sans], 28 | }, 29 | fontSize: { 30 | sm2: "0.9375rem", // 15px label 31 | base: "1rem", // 16px base 32 | md: "1.0625rem", // 17px body 33 | lg: "1.125rem", // 18px heading 34 | }, 35 | lineHeight: { 36 | snugish: "1.32", 37 | normal: "1.34", 38 | }, 39 | maxWidth: { 40 | "letter": "66.40625rem", 41 | "a4": "64.609375rem" 42 | }, 43 | height: { 44 | "letter": "85.9375rem", 45 | "letter-col": "71.625rem", 46 | "letter-col-full": "77.9375rem", 47 | "a4": "91.350883rem", 48 | "a4-col": "77.038383rem", 49 | "a4-col-full": "83.350883rem", 50 | }, 51 | spacing: { 52 | "0.5": "2px", // 2px 53 | "1.5": "0.375rem", // 6px 54 | "1.6": "0.4375rem", // 7px 55 | "2.1": "0.5625rem", // 9px 56 | "2.5": "10px", // 10px 57 | "3.2": "0.8125rem", // 16px 58 | "4.5": "1.125rem", // 8px 59 | "11": "2.75rem", // 44px (once) 60 | }, 61 | colors: { 62 | gray: { 63 | "150": "hsl(210, 44%, 97%)", 64 | "250": "hsl(210, 40%, 93.5%)", 65 | "550": "hsl(218, 20%, 63%)", 66 | "650": "hsl(216, 15%, 48%)", 67 | "750": "hsl(214, 17%, 32%)", 68 | ...defaultTheme.colors.gray 69 | }, 70 | link: "#fbf3f3" 71 | }, 72 | }, 73 | }, 74 | 75 | variants: { 76 | textColor: ["responsive", 'hover', 'focus', 'group-hover'], 77 | margin: ["responsive", "last", "first"], 78 | padding: ["responsive", "last"], 79 | }, 80 | 81 | plugins: [ 82 | plugin(function ({ addBase, addUtilities, theme }) { 83 | addBase({ 84 | "body": { 85 | "-webkit-font-smoothing": "subpixel-antialiased", 86 | }, 87 | }); 88 | 89 | /** 90 | * Typography Utilities 91 | */ 92 | const typographyUtils = { 93 | ".optimize-legibility": { 94 | "text-rendering": "optimizeLegibility", 95 | }, 96 | ".ligatures": { 97 | "font-variant-ligatures": "common-ligatures", 98 | "font-feature-settings": "'liga' on, 'clig' on", 99 | }, 100 | ".kerning": { 101 | "font-kerning": "normal", 102 | "font-feature-settings": "'kern' on", 103 | }, 104 | ".small-caps": { 105 | "font-variant-caps": "small-caps", 106 | "font-feature-settings": "'smcp' on", 107 | }, 108 | ".all-small-caps": { 109 | "font-variant-caps": "all-small-caps", 110 | "font-feature-settings": "'c2sc' on, 'smcp' on", 111 | }, 112 | ".lining-nums": { 113 | "font-variant-numeric": "lining-nums", 114 | "font-feature-settings": "'lnum' on", 115 | }, 116 | ".oldstyle-nums": { 117 | "font-variant-numeric": "oldstyle-nums", 118 | "font-feature-settings": "'onum' on", 119 | }, 120 | ".proportional-nums": { 121 | "font-variant-numeric": "proportional-nums", 122 | "font-feature-settings": "'pnum' on", 123 | }, 124 | ".tabular-nums": { 125 | "font-variant-numeric": "tabular-nums", 126 | "font-feature-settings": "'tnum' on", 127 | }, 128 | ".slashed-zero": { 129 | "font-variant-numeric": "slashed-zero", 130 | "font-feature-settings": "'zero' on", 131 | }, 132 | ".super": { 133 | "font-variant-position": "super", 134 | "font-feature-settings": "'sups' on", 135 | }, 136 | ".sub": { 137 | "font-variant-position": "sub", 138 | "font-feature-settings": "'sub' on", 139 | }, 140 | ".ordinal": { 141 | "font-variant-position": "ordinal", 142 | "font-feature-settings": "'ordn' on", 143 | }, 144 | ".fractions": { 145 | "font-variant-numeric": "diagonal-fractions", 146 | "font-feature-settings": "'frac' on", 147 | }, 148 | ".case-sensitive": { 149 | "text-transform": "uppercase", 150 | "font-feature-settings": "'case' on", 151 | }, 152 | ".hyphens-manual": { 153 | "hyphens": "manual", 154 | }, 155 | } 156 | 157 | addUtilities(typographyUtils, { 158 | variants: ["responsive"], 159 | }) 160 | 161 | /** 162 | * Project Spicific Utilities 163 | */ 164 | const projectSpecificUtils = { 165 | ".border-inset": { 166 | "box-shadow": `inset 0 0 0 1px ${theme("colors.gray.400")}`, 167 | } 168 | } 169 | 170 | addUtilities(projectSpecificUtils, { 171 | variants: ["responsive"], 172 | }) 173 | 174 | /** 175 | * CSS Multi-Column Layout Utilities 176 | */ 177 | const columnUtils = { 178 | ".col-count-1": { 179 | "column-count": "1", 180 | }, 181 | ".col-count-2": { 182 | "column-count": "2", 183 | }, 184 | ".col-count-3": { 185 | "column-count": "3", 186 | }, 187 | ".col-width-1": { 188 | "column-width": "65%", 189 | }, 190 | ".col-gap-md": { 191 | "column-gap": "2.1875rem", 192 | }, 193 | ".break-after-col": { 194 | "break-after": "column", 195 | }, 196 | ".break-inside-avoid": { 197 | "break-inside": "avoid", 198 | }, 199 | ".break-after-avoid": { 200 | "break-after": "avoid", 201 | }, 202 | ".break-before-avoid": { 203 | "break-after": "avoid", 204 | }, 205 | ".col-fill-auto": { 206 | "column-fill": "auto", 207 | }, 208 | ".col-fill-balance": { 209 | "column-fill": "balance", 210 | }, 211 | } 212 | 213 | addUtilities(columnUtils, { 214 | variants: ["responsive"], 215 | }) 216 | }), 217 | 218 | ] 219 | }; 220 | -------------------------------------------------------------------------------- /docs/fira-go.css: -------------------------------------------------------------------------------- 1 | /* latin */ 2 | @font-face { 3 | font-family: 'FiraGo'; 4 | font-style: normal; 5 | font-weight: 600; 6 | font-display: swap; 7 | src: 8 | url('/fonts/FiraGO-SemiBold.latin.woff2') format('woff2'); 9 | unicode-range: U+0000-007F, U+0080-00FF; 10 | } 11 | /* latin-ext */ 12 | @font-face { 13 | font-family: 'FiraGo'; 14 | font-style: normal; 15 | font-weight: 600; 16 | font-display: swap; 17 | src: 18 | url('/fonts/FiraGO-SemiBold.latin-ext.woff2') format('woff2'); 19 | unicode-range: U+0100-017F, U+0180-024F, U+0250-02AF, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF, U+AB30-AB6F; 20 | } 21 | /* cyrillic */ 22 | @font-face { 23 | font-family: 'FiraGo'; 24 | font-style: normal; 25 | font-weight: 600; 26 | font-display: swap; 27 | src: 28 | url('/fonts/FiraGO-SemiBold.cyrillic.woff2') format('woff2'); 29 | unicode-range: U+0400-04FF, U+0500-052F; 30 | } 31 | /* special */ 32 | @font-face { 33 | font-family: 'FiraGo'; 34 | font-style: normal; 35 | font-weight: 600; 36 | font-display: swap; 37 | src: 38 | url('/fonts/FiraGO-SemiBold.special.woff2') format('woff2'); 39 | unicode-range: U+02B0-02FF, U+0300-036F, U+1D00-1D7F, U+1D80-1DBF, U+1DC0-1DFF, U+2300-23FF, U+2980-29FF, U+2B00-2BFF, U+E000-F8FF, U+FB00-FB4F; 40 | } 41 | /* greek */ 42 | @font-face { 43 | font-family: 'FiraGo'; 44 | font-style: normal; 45 | font-weight: 600; 46 | font-display: swap; 47 | src: 48 | url('/fonts/FiraGO-SemiBold.greek.woff2') format('woff2'); 49 | unicode-range: U+0370-03FF, U+1F00-1FFF; 50 | } 51 | /* hebrew */ 52 | @font-face { 53 | font-family: 'FiraGo'; 54 | font-style: normal; 55 | font-weight: 600; 56 | font-display: swap; 57 | src: 58 | url('/fonts/FiraGO-SemiBold.hebrew.woff2') format('woff2'); 59 | unicode-range: U+0590-05FF; 60 | } 61 | /* arabic */ 62 | @font-face { 63 | font-family: 'FiraGo'; 64 | font-style: normal; 65 | font-weight: 600; 66 | font-display: swap; 67 | src: 68 | url('/fonts/FiraGO-SemiBold.arabic.woff2') format('woff2'); 69 | unicode-range: U+0600-06FF, U+0750-077F, U+FB50-FDFF, U+FE70-FEFF; 70 | } 71 | /* devanagari */ 72 | @font-face { 73 | font-family: 'FiraGo'; 74 | font-style: normal; 75 | font-weight: 600; 76 | font-display: swap; 77 | src: 78 | url('/fonts/FiraGO-SemiBold.devanagari.woff2') format('woff2'); 79 | unicode-range: U+0900-097F; 80 | } 81 | /* thai */ 82 | @font-face { 83 | font-family: 'FiraGo'; 84 | font-style: normal; 85 | font-weight: 600; 86 | font-display: swap; 87 | src: 88 | url('/fonts/FiraGO-SemiBold.thai.woff2') format('woff2'); 89 | unicode-range: U+0E00-0E7F; 90 | } 91 | /* georgian */ 92 | @font-face { 93 | font-family: 'FiraGo'; 94 | font-style: normal; 95 | font-weight: 600; 96 | font-display: swap; 97 | src: 98 | url('/fonts/FiraGO-SemiBold.georgian.woff2') format('woff2'); 99 | unicode-range: U+10A0-10FF; 100 | } 101 | /* shared */ 102 | @font-face { 103 | font-family: 'FiraGo'; 104 | font-style: normal; 105 | font-weight: 600; 106 | font-display: swap; 107 | src: 108 | url('/fonts/FiraGO-SemiBold.shared.woff2') format('woff2'); 109 | unicode-range: U+2000-206F, U+2070-209F, U+20A0-20CF, U+2100-214F, U+2150-218F, U+2190-21FF, U+2200-22FF, U+25A0-25FF, U+2700-27BF; 110 | } 111 | /* latin */ 112 | @font-face { 113 | font-family: 'FiraGo'; 114 | font-style: normal; 115 | font-weight: 700; 116 | font-display: swap; 117 | src: 118 | url('/fonts/FiraGO-Bold.latin.woff2') format('woff2'); 119 | unicode-range: U+0000-007F, U+0080-00FF; 120 | } 121 | /* latin-ext */ 122 | @font-face { 123 | font-family: 'FiraGo'; 124 | font-style: normal; 125 | font-weight: 700; 126 | font-display: swap; 127 | src: 128 | url('/fonts/FiraGO-Bold.latin-ext.woff2') format('woff2'); 129 | unicode-range: U+0100-017F, U+0180-024F, U+0250-02AF, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF, U+AB30-AB6F; 130 | } 131 | /* cyrillic */ 132 | @font-face { 133 | font-family: 'FiraGo'; 134 | font-style: normal; 135 | font-weight: 700; 136 | font-display: swap; 137 | src: 138 | url('/fonts/FiraGO-Bold.cyrillic.woff2') format('woff2'); 139 | unicode-range: U+0400-04FF, U+0500-052F; 140 | } 141 | /* special */ 142 | @font-face { 143 | font-family: 'FiraGo'; 144 | font-style: normal; 145 | font-weight: 700; 146 | font-display: swap; 147 | src: 148 | url('/fonts/FiraGO-Bold.special.woff2') format('woff2'); 149 | unicode-range: U+02B0-02FF, U+0300-036F, U+1D00-1D7F, U+1D80-1DBF, U+1DC0-1DFF, U+2300-23FF, U+2980-29FF, U+2B00-2BFF, U+E000-F8FF, U+FB00-FB4F; 150 | } 151 | /* greek */ 152 | @font-face { 153 | font-family: 'FiraGo'; 154 | font-style: normal; 155 | font-weight: 700; 156 | font-display: swap; 157 | src: 158 | url('/fonts/FiraGO-Bold.greek.woff2') format('woff2'); 159 | unicode-range: U+0370-03FF, U+1F00-1FFF; 160 | } 161 | /* hebrew */ 162 | @font-face { 163 | font-family: 'FiraGo'; 164 | font-style: normal; 165 | font-weight: 700; 166 | font-display: swap; 167 | src: 168 | url('/fonts/FiraGO-Bold.hebrew.woff2') format('woff2'); 169 | unicode-range: U+0590-05FF; 170 | } 171 | /* arabic */ 172 | @font-face { 173 | font-family: 'FiraGo'; 174 | font-style: normal; 175 | font-weight: 700; 176 | font-display: swap; 177 | src: 178 | url('/fonts/FiraGO-Bold.arabic.woff2') format('woff2'); 179 | unicode-range: U+0600-06FF, U+0750-077F, U+FB50-FDFF, U+FE70-FEFF; 180 | } 181 | /* devanagari */ 182 | @font-face { 183 | font-family: 'FiraGo'; 184 | font-style: normal; 185 | font-weight: 700; 186 | font-display: swap; 187 | src: 188 | url('/fonts/FiraGO-Bold.devanagari.woff2') format('woff2'); 189 | unicode-range: U+0900-097F; 190 | } 191 | /* thai */ 192 | @font-face { 193 | font-family: 'FiraGo'; 194 | font-style: normal; 195 | font-weight: 700; 196 | font-display: swap; 197 | src: 198 | url('/fonts/FiraGO-Bold.thai.woff2') format('woff2'); 199 | unicode-range: U+0E00-0E7F; 200 | } 201 | /* georgian */ 202 | @font-face { 203 | font-family: 'FiraGo'; 204 | font-style: normal; 205 | font-weight: 700; 206 | font-display: swap; 207 | src: 208 | url('/fonts/FiraGO-Bold.georgian.woff2') format('woff2'); 209 | unicode-range: U+10A0-10FF; 210 | } 211 | /* shared */ 212 | @font-face { 213 | font-family: 'FiraGo'; 214 | font-style: normal; 215 | font-weight: 700; 216 | font-display: swap; 217 | src: 218 | url('/fonts/FiraGO-Bold.shared.woff2') format('woff2'); 219 | unicode-range: U+2000-206F, U+2070-209F, U+20A0-20CF, U+2100-214F, U+2150-218F, U+2190-21FF, U+2200-22FF, U+25A0-25FF, U+2700-27BF; 220 | } 221 | /* latin */ 222 | @font-face { 223 | font-family: 'FiraGo'; 224 | font-style: normal; 225 | font-weight: 300; 226 | font-display: swap; 227 | src: 228 | url('/fonts/FiraGO-Book.latin.woff2') format('woff2'); 229 | unicode-range: U+0000-007F, U+0080-00FF; 230 | } 231 | /* latin-ext */ 232 | @font-face { 233 | font-family: 'FiraGo'; 234 | font-style: normal; 235 | font-weight: 300; 236 | font-display: swap; 237 | src: 238 | url('/fonts/FiraGO-Book.latin-ext.woff2') format('woff2'); 239 | unicode-range: U+0100-017F, U+0180-024F, U+0250-02AF, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF, U+AB30-AB6F; 240 | } 241 | /* cyrillic */ 242 | @font-face { 243 | font-family: 'FiraGo'; 244 | font-style: normal; 245 | font-weight: 300; 246 | font-display: swap; 247 | src: 248 | url('/fonts/FiraGO-Book.cyrillic.woff2') format('woff2'); 249 | unicode-range: U+0400-04FF, U+0500-052F; 250 | } 251 | /* special */ 252 | @font-face { 253 | font-family: 'FiraGo'; 254 | font-style: normal; 255 | font-weight: 300; 256 | font-display: swap; 257 | src: 258 | url('/fonts/FiraGO-Book.special.woff2') format('woff2'); 259 | unicode-range: U+02B0-02FF, U+0300-036F, U+1D00-1D7F, U+1D80-1DBF, U+1DC0-1DFF, U+2300-23FF, U+2980-29FF, U+2B00-2BFF, U+E000-F8FF, U+FB00-FB4F; 260 | } 261 | /* greek */ 262 | @font-face { 263 | font-family: 'FiraGo'; 264 | font-style: normal; 265 | font-weight: 300; 266 | font-display: swap; 267 | src: 268 | url('/fonts/FiraGO-Book.greek.woff2') format('woff2'); 269 | unicode-range: U+0370-03FF, U+1F00-1FFF; 270 | } 271 | /* hebrew */ 272 | @font-face { 273 | font-family: 'FiraGo'; 274 | font-style: normal; 275 | font-weight: 300; 276 | font-display: swap; 277 | src: 278 | url('/fonts/FiraGO-Book.hebrew.woff2') format('woff2'); 279 | unicode-range: U+0590-05FF; 280 | } 281 | /* arabic */ 282 | @font-face { 283 | font-family: 'FiraGo'; 284 | font-style: normal; 285 | font-weight: 300; 286 | font-display: swap; 287 | src: 288 | url('/fonts/FiraGO-Book.arabic.woff2') format('woff2'); 289 | unicode-range: U+0600-06FF, U+0750-077F, U+FB50-FDFF, U+FE70-FEFF; 290 | } 291 | /* devanagari */ 292 | @font-face { 293 | font-family: 'FiraGo'; 294 | font-style: normal; 295 | font-weight: 300; 296 | font-display: swap; 297 | src: 298 | url('/fonts/FiraGO-Book.devanagari.woff2') format('woff2'); 299 | unicode-range: U+0900-097F; 300 | } 301 | /* thai */ 302 | @font-face { 303 | font-family: 'FiraGo'; 304 | font-style: normal; 305 | font-weight: 300; 306 | font-display: swap; 307 | src: 308 | url('/fonts/FiraGO-Book.thai.woff2') format('woff2'); 309 | unicode-range: U+0E00-0E7F; 310 | } 311 | /* georgian */ 312 | @font-face { 313 | font-family: 'FiraGo'; 314 | font-style: normal; 315 | font-weight: 300; 316 | font-display: swap; 317 | src: 318 | url('/fonts/FiraGO-Book.georgian.woff2') format('woff2'); 319 | unicode-range: U+10A0-10FF; 320 | } 321 | /* shared */ 322 | @font-face { 323 | font-family: 'FiraGo'; 324 | font-style: normal; 325 | font-weight: 300; 326 | font-display: swap; 327 | src: 328 | url('/fonts/FiraGO-Book.shared.woff2') format('woff2'); 329 | unicode-range: U+2000-206F, U+2070-209F, U+20A0-20CF, U+2100-214F, U+2150-218F, U+2190-21FF, U+2200-22FF, U+25A0-25FF, U+2700-27BF; 330 | } 331 | /* latin */ 332 | @font-face { 333 | font-family: 'FiraGo'; 334 | font-style: normal; 335 | font-weight: 500; 336 | font-display: swap; 337 | src: 338 | url('/fonts/FiraGO-Medium.latin.woff2') format('woff2'); 339 | unicode-range: U+0000-007F, U+0080-00FF; 340 | } 341 | /* latin-ext */ 342 | @font-face { 343 | font-family: 'FiraGo'; 344 | font-style: normal; 345 | font-weight: 500; 346 | font-display: swap; 347 | src: 348 | url('/fonts/FiraGO-Medium.latin-ext.woff2') format('woff2'); 349 | unicode-range: U+0100-017F, U+0180-024F, U+0250-02AF, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF, U+AB30-AB6F; 350 | } 351 | /* cyrillic */ 352 | @font-face { 353 | font-family: 'FiraGo'; 354 | font-style: normal; 355 | font-weight: 500; 356 | font-display: swap; 357 | src: 358 | url('/fonts/FiraGO-Medium.cyrillic.woff2') format('woff2'); 359 | unicode-range: U+0400-04FF, U+0500-052F; 360 | } 361 | /* special */ 362 | @font-face { 363 | font-family: 'FiraGo'; 364 | font-style: normal; 365 | font-weight: 500; 366 | font-display: swap; 367 | src: 368 | url('/fonts/FiraGO-Medium.special.woff2') format('woff2'); 369 | unicode-range: U+02B0-02FF, U+0300-036F, U+1D00-1D7F, U+1D80-1DBF, U+1DC0-1DFF, U+2300-23FF, U+2980-29FF, U+2B00-2BFF, U+E000-F8FF, U+FB00-FB4F; 370 | } 371 | /* greek */ 372 | @font-face { 373 | font-family: 'FiraGo'; 374 | font-style: normal; 375 | font-weight: 500; 376 | font-display: swap; 377 | src: 378 | url('/fonts/FiraGO-Medium.greek.woff2') format('woff2'); 379 | unicode-range: U+0370-03FF, U+1F00-1FFF; 380 | } 381 | /* hebrew */ 382 | @font-face { 383 | font-family: 'FiraGo'; 384 | font-style: normal; 385 | font-weight: 500; 386 | font-display: swap; 387 | src: 388 | url('/fonts/FiraGO-Medium.hebrew.woff2') format('woff2'); 389 | unicode-range: U+0590-05FF; 390 | } 391 | /* arabic */ 392 | @font-face { 393 | font-family: 'FiraGo'; 394 | font-style: normal; 395 | font-weight: 500; 396 | font-display: swap; 397 | src: 398 | url('/fonts/FiraGO-Medium.arabic.woff2') format('woff2'); 399 | unicode-range: U+0600-06FF, U+0750-077F, U+FB50-FDFF, U+FE70-FEFF; 400 | } 401 | /* devanagari */ 402 | @font-face { 403 | font-family: 'FiraGo'; 404 | font-style: normal; 405 | font-weight: 500; 406 | font-display: swap; 407 | src: 408 | url('/fonts/FiraGO-Medium.devanagari.woff2') format('woff2'); 409 | unicode-range: U+0900-097F; 410 | } 411 | /* thai */ 412 | @font-face { 413 | font-family: 'FiraGo'; 414 | font-style: normal; 415 | font-weight: 500; 416 | font-display: swap; 417 | src: 418 | url('/fonts/FiraGO-Medium.thai.woff2') format('woff2'); 419 | unicode-range: U+0E00-0E7F; 420 | } 421 | /* georgian */ 422 | @font-face { 423 | font-family: 'FiraGo'; 424 | font-style: normal; 425 | font-weight: 500; 426 | font-display: swap; 427 | src: 428 | url('/fonts/FiraGO-Medium.georgian.woff2') format('woff2'); 429 | unicode-range: U+10A0-10FF; 430 | } 431 | /* shared */ 432 | @font-face { 433 | font-family: 'FiraGo'; 434 | font-style: normal; 435 | font-weight: 500; 436 | font-display: swap; 437 | src: 438 | url('/fonts/FiraGO-Medium.shared.woff2') format('woff2'); 439 | unicode-range: U+2000-206F, U+2070-209F, U+20A0-20CF, U+2100-214F, U+2150-218F, U+2190-21FF, U+2200-22FF, U+25A0-25FF, U+2700-27BF; 440 | } 441 | /* latin */ 442 | @font-face { 443 | font-family: 'FiraGo'; 444 | font-style: normal; 445 | font-weight: 400; 446 | font-display: swap; 447 | src: 448 | url('/fonts/FiraGO-Regular.latin.woff2') format('woff2'); 449 | unicode-range: U+0000-007F, U+0080-00FF; 450 | } 451 | /* latin-ext */ 452 | @font-face { 453 | font-family: 'FiraGo'; 454 | font-style: normal; 455 | font-weight: 400; 456 | font-display: swap; 457 | src: 458 | url('/fonts/FiraGO-Regular.latin-ext.woff2') format('woff2'); 459 | unicode-range: U+0100-017F, U+0180-024F, U+0250-02AF, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF, U+AB30-AB6F; 460 | } 461 | /* cyrillic */ 462 | @font-face { 463 | font-family: 'FiraGo'; 464 | font-style: normal; 465 | font-weight: 400; 466 | font-display: swap; 467 | src: 468 | url('/fonts/FiraGO-Regular.cyrillic.woff2') format('woff2'); 469 | unicode-range: U+0400-04FF, U+0500-052F; 470 | } 471 | /* special */ 472 | @font-face { 473 | font-family: 'FiraGo'; 474 | font-style: normal; 475 | font-weight: 400; 476 | font-display: swap; 477 | src: 478 | url('/fonts/FiraGO-Regular.special.woff2') format('woff2'); 479 | unicode-range: U+02B0-02FF, U+0300-036F, U+1D00-1D7F, U+1D80-1DBF, U+1DC0-1DFF, U+2300-23FF, U+2980-29FF, U+2B00-2BFF, U+E000-F8FF, U+FB00-FB4F; 480 | } 481 | /* greek */ 482 | @font-face { 483 | font-family: 'FiraGo'; 484 | font-style: normal; 485 | font-weight: 400; 486 | font-display: swap; 487 | src: 488 | url('/fonts/FiraGO-Regular.greek.woff2') format('woff2'); 489 | unicode-range: U+0370-03FF, U+1F00-1FFF; 490 | } 491 | /* hebrew */ 492 | @font-face { 493 | font-family: 'FiraGo'; 494 | font-style: normal; 495 | font-weight: 400; 496 | font-display: swap; 497 | src: 498 | url('/fonts/FiraGO-Regular.hebrew.woff2') format('woff2'); 499 | unicode-range: U+0590-05FF; 500 | } 501 | /* arabic */ 502 | @font-face { 503 | font-family: 'FiraGo'; 504 | font-style: normal; 505 | font-weight: 400; 506 | font-display: swap; 507 | src: 508 | url('/fonts/FiraGO-Regular.arabic.woff2') format('woff2'); 509 | unicode-range: U+0600-06FF, U+0750-077F, U+FB50-FDFF, U+FE70-FEFF; 510 | } 511 | /* devanagari */ 512 | @font-face { 513 | font-family: 'FiraGo'; 514 | font-style: normal; 515 | font-weight: 400; 516 | font-display: swap; 517 | src: 518 | url('/fonts/FiraGO-Regular.devanagari.woff2') format('woff2'); 519 | unicode-range: U+0900-097F; 520 | } 521 | /* thai */ 522 | @font-face { 523 | font-family: 'FiraGo'; 524 | font-style: normal; 525 | font-weight: 400; 526 | font-display: swap; 527 | src: 528 | url('/fonts/FiraGO-Regular.thai.woff2') format('woff2'); 529 | unicode-range: U+0E00-0E7F; 530 | } 531 | /* georgian */ 532 | @font-face { 533 | font-family: 'FiraGo'; 534 | font-style: normal; 535 | font-weight: 400; 536 | font-display: swap; 537 | src: 538 | url('/fonts/FiraGO-Regular.georgian.woff2') format('woff2'); 539 | unicode-range: U+10A0-10FF; 540 | } 541 | /* shared */ 542 | @font-face { 543 | font-family: 'FiraGo'; 544 | font-style: normal; 545 | font-weight: 400; 546 | font-display: swap; 547 | src: 548 | url('/fonts/FiraGO-Regular.shared.woff2') format('woff2'); 549 | unicode-range: U+2000-206F, U+2070-209F, U+20A0-20CF, U+2100-214F, U+2150-218F, U+2190-21FF, U+2200-22FF, U+25A0-25FF, U+2700-27BF; 550 | } 551 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | Torey Littlefield — Resume 16 | 17 | 18 | 19 |
20 | 21 |
33 | 34 |
43 | 44 |
45 |
T
46 |
L
47 |
48 |

49 | Torey Littlefield 50 |

51 | 52 | 53 | 54 |

56 | <> `${Software Engineer}` </> 58 |

59 | 60 |
61 | 62 | 63 | 64 |
65 |

CONTACT

66 | 67 | 68 | 123 |
124 | 125 | 126 | 127 |
128 | 129 |
130 | 131 |
132 |

133 | PROFILE 134 |

135 | 136 |
137 | 139 |

140 | 141 | 142 | US Citizen - Originally from Boston, MA. 143 | 144 |

145 |

146 | 147 | Living & residing in Bali, Indonesia. 148 |

149 |

150 | 151 | Available Time Zones: 152 | Full overlap APAC & EMEA (Europe). 153 | Some US / Canada overlap. 154 |

155 |

156 | 157 | Fully remote permanent or contract role on diverse, trusting, and async team. 158 |

159 |
160 |
161 | 162 | 163 | 164 |
165 |

EXPERIENCE

166 | 167 | 168 |
169 |
170 |

171 | Software Engineer 172 | @ E-IGNITED - Independent 173 | Consulting 174 |

175 |

176 | August 2020 – Present // Remote 177 | - USA, Australia, Anywhere 178 |

179 |
180 |
    181 |
  • 182 | 183 | Contracted by T-Mobile US to help create customer facing onboarding pages at 184 | t-mobile.com/support 185 | using Vue.js / TypeScript & PHP / Laravel, AWS, GitLab CI/CD stack with CWAG AA/AAA accessibility 186 | rating and 187 | accessibility compliance auditing. 188 |
  • 189 |
  • 190 | 191 | Assisted internal T-Mobile engineering teams in testing, diagnosing and debugging production issues, 192 | creating documentation, code standards for engineering teams. 193 |
  • 194 |
  • 195 | 196 | Contracted by Integrity Testing an Australian Structural Engineering firm, to assist 197 | on dev team for creating an internal React.js, TypeScript, Node.js and AWS Serverless application. 198 |
  • 199 |
200 |
201 | 202 | 203 | 204 |
205 |
206 |

207 | Software Engineer & Co-Founder 208 | @ Never Enough Books 209 |

210 |

211 | November 2018 – August 2020 // Easthampton, MA 212 |

213 |
214 |
    215 |
  • 216 | 217 | Developed scalable internal application for inventory management & 218 | pricing automation using JavaScript, React.js, Node.js, REST APIs & GraphQL, and AWS RDS PostgreSQL 219 | database. 220 |
  • 221 |
  • 222 | 223 | Developed Shopify eCommerce store for 20K+ SKUs that consumed our inventory software API. 224 |
  • 225 |
  • 226 | 227 | Software was capable of listing & pricing 1000's SKUs per hour saving 100's of hours & 228 | $1000's in labor costs each month & increased ASP 28% above market benchmarks. 229 |
  • 230 | 231 | 232 |
233 |
234 | 235 | 236 | 237 |
238 |
239 |

240 | Frontend Software Engineer - eCommerce Manager 241 | @ Intelligent Technologies 242 |

243 |

244 | January 2010 – November 2019 // Northampton, MA 245 |

246 |
247 |
    248 |
  • 249 | 250 | Last 1.5 years as Frontend Engineer on dev team for internal React.js / JavaScript applications. 251 |
  • 252 |
  • 253 | 254 | Managing marketplace accounts, inventory, multichannel sales, and advertising campaigns. 255 |
  • 256 |
257 |
258 | 259 |
260 | 261 | 262 | 263 |
264 |

Volunteer & Professional Development 265 |

266 | 267 | 268 |
269 |
270 |

271 | Chapter Co-Lead 272 | @ Codecademy 273 |

274 |

275 | September 2021 – Present // United States 276 |

277 |
278 |
    279 |
  • 280 | 281 | Provide live demos, workshops, tutoring, and mentoring for engineers and students learning JavaScript, 282 | React, Next.js, Node, and AWS, Serverless architecture. 283 |
  • 284 |
285 |
286 | 287 | 288 | 289 |
290 |
291 | 292 |

293 | Full-Time Contributor & Co-Host 294 | 295 | @ Roar Coders 296 | 306 | 307 | 308 |

309 | 310 |

311 | August 2021 – Present // Melbourne, Australia 312 |

313 |
314 |
    315 |
  • 316 | 317 | Devs from Melbourne, Australia hosting a live software development show: Twitch & YouTube 318 |
  • 319 |
  • 320 | 321 | Full-time contributor and co-host building in public and 322 | developing open-source. 323 |
  • 324 |
325 |
326 | 327 |
328 | 329 | 330 | 331 |
332 |

Professional Certification & 333 | Achievements

334 | 335 | 336 |
337 | 390 |
391 | 392 |
393 | 394 |
395 | 396 | 397 | 398 |
399 | 400 |
401 |

SKILLS

402 | 403 |
404 |
405 |

Programming & Languages

406 |
407 |
408 |
    409 |
  • 410 | TypeScript 411 |
  • 412 |
  • 413 | JavaScript (ES6+) 414 |
  • 415 |
  • 416 | Node 417 |
  • 418 |
  • 419 | GraphQL 420 |
  • 421 |
  • 422 | SQL 423 |
  • 424 |
  • 425 | HTML 426 |
  • 427 |
  • 428 | CSS/Sass 429 |
  • 430 | 435 |
436 |
437 |
438 | 439 | 440 | 441 |
442 |
443 |

Libraries & Frameworks

444 |
445 |
446 |
    447 |
  • 448 | React 449 |
  • 450 |
  • 451 | Next.js 452 |
  • 453 |
  • 454 | Redux 455 |
  • 456 |
  • 457 | GSAP 458 |
  • 459 | 464 | 465 |
  • 466 | Express 467 |
  • 468 |
  • 469 | Apollo 470 |
  • 471 |
  • 472 | AWS Serverless 473 |
  • 474 | 479 |
480 |
481 |
482 | 483 | 484 |
485 |
486 |

Test Runners & Libraries

487 |
488 |
489 |
    490 |
  • 491 | Jest 492 |
  • 493 |
  • 494 | React-Scripts 495 |
  • 496 |
  • 497 | Puppeteer 498 |
  • 499 |
500 |
501 |
502 | 503 | 504 |
505 |
506 |

Tools | Services | Database

507 |
508 |
509 |
    510 |
  • 511 | Git / Bash / Shells 512 |
  • 513 |
  • 514 | Eslint 515 |
  • 516 |
  • 517 | CI / CD 518 |
  • 519 | 520 |
  • 521 | GitLab 522 |
  • 523 |
  • 524 | Husky - Git Hooks 525 |
  • 526 |
  • 527 | Docker 528 |
  • 529 |
  • 530 | AWS 531 |
  • 532 |
  • 533 | PostgreSQL 534 |
  • 535 |
  • 536 | DynamoDB 537 |
  • 538 |
539 |
540 |
541 | 542 | 543 | 544 | 565 | 566 |
567 | 568 | 569 | 570 |
571 |

TECHNICAL PROJECTS

572 | 573 | 574 |
575 |
576 |

577 | 579 | T-Mobile New Customer Onboarding 580 | 590 | 591 |

592 |

593 | Stack: Javascript, Vue.js, Laravel 594 |

595 |

596 | Finished 597 |

598 |
599 |
600 |

601 | Description: 602 | T-Mobile onboarding experience for new customers and Sprint customers after merger. 603 |

604 |

605 | Market Need: 606 | Large churn from Sprint customers migrating to T-Mobile. 607 |

608 |

609 | Solves: 610 | Integrates the T-Mobile Un-Carrier campaign, showcases benefits, and educates customers 611 |

612 | Features: 613 | 614 |
615 |
    616 |
  • 617 | 618 | Users can set up online account to manage T-Mobile account & see of the benefits they recieve with 619 | T-Mobile service. 620 |
  • 621 |
  • 622 | 623 | Helps transition customers migrating from Sprint. 624 |
  • 625 |
626 |
627 |
628 | 629 |
630 | 631 | 632 | 633 |
634 |

EDUCATION

635 | 636 | 637 |
638 |
639 |

University Of Massachusetts

640 |

Amherst, MA

641 |
642 |

643 | Pursued Bachelor’s of Science in Mathematics | Commonwealth Honors 644 |

645 |

646 | *Incomplete senior year: medical leave of absence.
647 | Topics in advanced multivariate & vector calculus, linear algebra, statistics, 648 | set theory, physics, MATLAB 649 |

650 |
651 | 652 | 653 | 654 | 665 | 666 |
667 | 668 |
669 | 670 |
671 | 672 | 673 | 674 | 695 | 696 |
697 | 698 |
699 | 700 | 701 | --------------------------------------------------------------------------------