├── card
├── .browserslistrc
├── src
│ ├── assets
│ │ ├── css
│ │ │ └── index.css
│ │ ├── image-header-desktop.jpg
│ │ └── image-header-mobile.jpg
│ ├── main.js
│ ├── App.vue
│ └── components
│ │ └── Card.vue
├── babel.config.js
├── postcss.config.js
├── tailwind.config.js
├── .gitignore
├── .eslintrc.js
├── README.md
├── package.json
└── public
│ └── index.html
├── social-proof-section
├── src
│ ├── assets
│ │ ├── css
│ │ │ └── index.css
│ │ └── images
│ │ │ ├── image-anne.jpg
│ │ │ ├── image-colton.jpg
│ │ │ ├── image-irene.jpg
│ │ │ ├── icon-star.svg
│ │ │ ├── bg-pattern-top-mobile.svg
│ │ │ ├── bg-pattern-top-desktop.svg
│ │ │ ├── bg-pattern-bottom-desktop.svg
│ │ │ └── bg-pattern-bottom-mobile.svg
│ ├── main.js
│ ├── components
│ │ ├── Rating.vue
│ │ └── Review.vue
│ └── App.vue
├── babel.config.js
├── postcss.config.js
├── .gitignore
├── README.md
├── tailwind.config.js
├── public
│ └── index.html
└── package.json
├── shortly-url-shortener
├── babel.config.js
├── public
│ ├── favicon.ico
│ └── index.html
├── postcss.config.js
├── src
│ ├── assets
│ │ ├── fonts
│ │ │ ├── Poppins-Bold.ttf
│ │ │ └── Poppins-Medium.ttf
│ │ ├── styles
│ │ │ └── index.css
│ │ ├── images
│ │ │ ├── BgShortenMobile.svg
│ │ │ ├── BgShortenDesktop.svg
│ │ │ ├── BgBoostMobile.svg
│ │ │ ├── BgBoostDesktop.svg
│ │ │ └── IllustrationWorking.svg
│ │ └── icons
│ │ │ ├── Facebook.svg
│ │ │ ├── Twitter.svg
│ │ │ ├── Pinterest.svg
│ │ │ ├── Instagram.svg
│ │ │ ├── DetailedRecords.svg
│ │ │ ├── Github.svg
│ │ │ ├── BrandRecognition.svg
│ │ │ ├── FullyCustomizable.svg
│ │ │ └── Logo.vue
│ ├── components
│ │ ├── SocialFooterLink.vue
│ │ ├── GetStartedButton.vue
│ │ ├── FooterSection.vue
│ │ ├── InfoCard.vue
│ │ ├── BoostLinks.vue
│ │ ├── Header.vue
│ │ ├── ContentTop.vue
│ │ ├── Footer.vue
│ │ ├── ResultContainer.vue
│ │ ├── ContentMiddle.vue
│ │ └── ShortenerForm.vue
│ ├── main.js
│ └── App.vue
├── .gitignore
├── tailwind.config.js
├── package.json
└── README.md
└── README.md
/card/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 | not dead
4 |
--------------------------------------------------------------------------------
/card/src/assets/css/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
--------------------------------------------------------------------------------
/card/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ["@vue/cli-plugin-babel/preset"],
3 | };
4 |
--------------------------------------------------------------------------------
/social-proof-section/src/assets/css/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
--------------------------------------------------------------------------------
/card/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/shortly-url-shortener/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/social-proof-section/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/card/src/assets/image-header-desktop.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/punitkatiyar/frontendmentor/main/card/src/assets/image-header-desktop.jpg
--------------------------------------------------------------------------------
/card/src/assets/image-header-mobile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/punitkatiyar/frontendmentor/main/card/src/assets/image-header-mobile.jpg
--------------------------------------------------------------------------------
/shortly-url-shortener/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/punitkatiyar/frontendmentor/main/shortly-url-shortener/public/favicon.ico
--------------------------------------------------------------------------------
/shortly-url-shortener/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/social-proof-section/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/card/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from "vue";
2 | import App from "./App.vue";
3 | import "./assets/css/index.css";
4 |
5 | createApp(App).mount("#app");
6 |
--------------------------------------------------------------------------------
/shortly-url-shortener/src/assets/fonts/Poppins-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/punitkatiyar/frontendmentor/main/shortly-url-shortener/src/assets/fonts/Poppins-Bold.ttf
--------------------------------------------------------------------------------
/social-proof-section/src/assets/images/image-anne.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/punitkatiyar/frontendmentor/main/social-proof-section/src/assets/images/image-anne.jpg
--------------------------------------------------------------------------------
/social-proof-section/src/assets/images/image-colton.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/punitkatiyar/frontendmentor/main/social-proof-section/src/assets/images/image-colton.jpg
--------------------------------------------------------------------------------
/social-proof-section/src/assets/images/image-irene.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/punitkatiyar/frontendmentor/main/social-proof-section/src/assets/images/image-irene.jpg
--------------------------------------------------------------------------------
/shortly-url-shortener/src/assets/fonts/Poppins-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/punitkatiyar/frontendmentor/main/shortly-url-shortener/src/assets/fonts/Poppins-Medium.ttf
--------------------------------------------------------------------------------
/shortly-url-shortener/src/assets/styles/index.css:
--------------------------------------------------------------------------------
1 | @import "tailwindcss/base";
2 | @import "tailwindcss/components";
3 | @import "tailwindcss/utilities";
4 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500;700&display=swap');
--------------------------------------------------------------------------------
/social-proof-section/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue";
2 | import App from "./App.vue";
3 | import "./assets/css/index.css";
4 |
5 | Vue.config.productionTip = false;
6 |
7 | new Vue({
8 | render: (h) => h(App),
9 | }).$mount("#app");
10 |
--------------------------------------------------------------------------------
/social-proof-section/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | pnpm-debug.log*
15 |
16 | # Editor directories and files
17 | .idea
18 | .vscode
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/shortly-url-shortener/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | pnpm-debug.log*
15 |
16 | # Editor directories and files
17 | .idea
18 | .vscode
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/card/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | mode: "jit",
3 | purge: ["./public/**/*.html", "./src/**/*.{js,jsx,ts,tsx,vue}"],
4 | darkMode: false,
5 | theme: {
6 | fontFamily: {
7 | inter: "Inter",
8 | lexend: ['"Lexend Deca"'],
9 | },
10 | extend: {},
11 | },
12 | variants: {
13 | extend: {},
14 | },
15 | plugins: [],
16 | };
17 |
--------------------------------------------------------------------------------
/card/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | /dist
4 | stats-preview-card-component-main/
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | pnpm-debug.log*
15 |
16 | # Editor directories and files
17 | .idea
18 | .vscode
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/social-proof-section/src/assets/images/icon-star.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Frontend Mentor
2 |
3 | This is a repository to reunite my Front-end coding challenges from [Frontend Mentor](https://www.frontendmentor.io/).
4 |
5 | ## Table of contents
6 |
7 | - [Projects](#projects)
8 | - [Built with](#built-with)
9 |
10 | ### Projects
11 |
12 | - [Card](card/)
13 | - [Social Proof Section](social-proof-section/)
14 | - [Shortly - URL Shortener](shortly-url-shortener/)
15 |
--------------------------------------------------------------------------------
/card/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | env: {
4 | node: true,
5 | },
6 | extends: ["plugin:vue/vue3-essential", "eslint:recommended", "@vue/prettier"],
7 | parserOptions: {
8 | parser: "babel-eslint",
9 | },
10 | rules: {
11 | "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
12 | "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/card/README.md:
--------------------------------------------------------------------------------
1 | # card
2 |
3 | ## Project setup
4 | ```
5 | npm install
6 | ```
7 |
8 | ### Compiles and hot-reloads for development
9 | ```
10 | npm run serve
11 | ```
12 |
13 | ### Compiles and minifies for production
14 | ```
15 | npm run build
16 | ```
17 |
18 | ### Lints and fixes files
19 | ```
20 | npm run lint
21 | ```
22 |
23 | ### Customize configuration
24 | See [Configuration Reference](https://cli.vuejs.org/config/).
25 |
--------------------------------------------------------------------------------
/social-proof-section/README.md:
--------------------------------------------------------------------------------
1 | # social-proof-section
2 |
3 | ## Project setup
4 | ```
5 | npm install
6 | ```
7 |
8 | ### Compiles and hot-reloads for development
9 | ```
10 | npm run serve
11 | ```
12 |
13 | ### Compiles and minifies for production
14 | ```
15 | npm run build
16 | ```
17 |
18 | ### Lints and fixes files
19 | ```
20 | npm run lint
21 | ```
22 |
23 | ### Customize configuration
24 | See [Configuration Reference](https://cli.vuejs.org/config/).
25 |
--------------------------------------------------------------------------------
/shortly-url-shortener/src/assets/images/BgShortenMobile.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/shortly-url-shortener/src/assets/icons/Facebook.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/shortly-url-shortener/src/components/SocialFooterLink.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
19 |
--------------------------------------------------------------------------------
/shortly-url-shortener/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue";
2 | import App from "@/App.vue";
3 | import "@/assets/styles/index.css";
4 |
5 | import { library } from "@fortawesome/fontawesome-svg-core";
6 | import { faBars, faSpinnerThird } from "@fortawesome/pro-regular-svg-icons";
7 | import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
8 |
9 | library.add(faBars, faSpinnerThird);
10 |
11 | Vue.component("font-awesome-icon", FontAwesomeIcon);
12 |
13 | Vue.config.productionTip = false;
14 |
15 | new Vue({
16 | render: (h) => h(App),
17 | }).$mount("#app");
18 |
--------------------------------------------------------------------------------
/shortly-url-shortener/src/components/GetStartedButton.vue:
--------------------------------------------------------------------------------
1 |
2 | Get Started
7 |
8 |
9 |
10 |
22 |
--------------------------------------------------------------------------------
/shortly-url-shortener/src/assets/icons/Twitter.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/shortly-url-shortener/src/components/FooterSection.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 | {{ description }} 14 |
15 |14 | Rated {{ stars }} Stars in {{ place }} 15 |
16 |{{ name }}
18 |Verified Buyer
19 |{{ description }}
23 |7 | Advanced Statistics 8 |
9 |12 | Track how your links are performing across the web with our advanced 13 | statistics dashboard. 14 |
15 |17 | Discover the benefits of data analytics and make better decisions 18 | regarding revenue, customer experience, and overall efficiency. 19 |
20 |30 | {{ value }} 31 |
32 |33 | {{ key }} 34 |
35 |
50 | 22 | We only provide great products combined with excellent customer 23 | service. See what our satisfied customers are saying about our 24 | services. 25 |
26 |