├── .vscode
└── settings.json
├── img
├── foto.png
├── DESKTOP.png
├── card-nike.png
├── background.png
├── card-liniker.png
├── card-phone.png
├── card-pikachu.png
├── card-sandman.png
└── card-sistema.png
├── css
├── reset.css
├── section-tittle.css
├── menu.css
├── logo.css
├── home.css
├── projetos.css
├── contato.css
├── sobre-mim.css
├── tablet.css
├── style.css
└── mobile.css
├── README.md
├── mobile-navbar.js
└── index.html
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "liveServer.settings.port": 5501
3 | }
--------------------------------------------------------------------------------
/img/foto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VINICIUSNUNES137/portifolio/HEAD/img/foto.png
--------------------------------------------------------------------------------
/img/DESKTOP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VINICIUSNUNES137/portifolio/HEAD/img/DESKTOP.png
--------------------------------------------------------------------------------
/img/card-nike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VINICIUSNUNES137/portifolio/HEAD/img/card-nike.png
--------------------------------------------------------------------------------
/img/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VINICIUSNUNES137/portifolio/HEAD/img/background.png
--------------------------------------------------------------------------------
/img/card-liniker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VINICIUSNUNES137/portifolio/HEAD/img/card-liniker.png
--------------------------------------------------------------------------------
/img/card-phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VINICIUSNUNES137/portifolio/HEAD/img/card-phone.png
--------------------------------------------------------------------------------
/img/card-pikachu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VINICIUSNUNES137/portifolio/HEAD/img/card-pikachu.png
--------------------------------------------------------------------------------
/img/card-sandman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VINICIUSNUNES137/portifolio/HEAD/img/card-sandman.png
--------------------------------------------------------------------------------
/img/card-sistema.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VINICIUSNUNES137/portifolio/HEAD/img/card-sistema.png
--------------------------------------------------------------------------------
/css/reset.css:
--------------------------------------------------------------------------------
1 | * {
2 | padding: 0;
3 | margin: 0;
4 | box-sizing: border-box;
5 | }
6 |
7 | ul, ul, li {
8 | list-style: none;
9 | }
10 |
11 | a{
12 | text-decoration: none;
13 | color: inherit;
14 | }
--------------------------------------------------------------------------------
/css/section-tittle.css:
--------------------------------------------------------------------------------
1 | .section__tittle {
2 | grid-area: tittle;
3 | font-size: 150px;
4 | text-align: center;
5 | background: linear-gradient(#fff2, #000);
6 | /* background-color: aliceblue; */
7 | background-clip: text;
8 | -webkit-background-clip: text;
9 | color: transparent;
10 | }
11 |
--------------------------------------------------------------------------------
/css/menu.css:
--------------------------------------------------------------------------------
1 | .menu {
2 | display: flex;
3 | gap: 72px;
4 | font-size: 1.25rem;
5 | color: #7779;
6 | }
7 |
8 | .menu li {
9 | border-bottom: 2px solid transparent;
10 | transition: all 0.5s;
11 | }
12 |
13 | .menu li:hover {
14 | border-color: var(--primary-color);
15 | color: #fff;
16 | }
17 |
--------------------------------------------------------------------------------
/css/logo.css:
--------------------------------------------------------------------------------
1 | .logo {
2 | font-size: 1.5rem;
3 | display: flex;
4 | justify-content: center;
5 | align-items: center;
6 | }
7 |
8 | .logo::before {
9 | content: '<';
10 | font-size: 1.75rem;
11 | color: var(--primary-color);
12 | /* font-weight: 700; */
13 | }
14 |
15 | .logo::after {
16 | content: '/>';
17 | font-size: 1.75rem;
18 | color: var(--primary-color);
19 | /* font-weight: 700; */
20 | }
21 |
--------------------------------------------------------------------------------
/css/home.css:
--------------------------------------------------------------------------------
1 | .home {
2 | width: 100%;
3 | display: flex;
4 | justify-content: center;
5 | align-items: center;
6 | background-image: url(https://i.pinimg.com/originals/66/29/ac/6629ac69eee96adbe0880b4f06afdc26.gif);
7 | background-repeat: no-repeat;
8 | background-size: cover;
9 | /* filter: brightness(50%); */
10 | box-shadow: inset 0px -40px 40px #000;
11 | }
12 |
13 | .home::after {
14 | background-color: #fff;
15 | }
16 |
17 | .profile__foto {
18 | filter: brightness(70%);
19 | border: 5px solid var(--primary-color);
20 | border-radius: 50%;
21 | }
22 |
23 | .profile {
24 | display: flex;
25 | align-items: center;
26 | gap: 48px;
27 | }
28 |
29 | .profile__text {
30 | font-size: 1.5rem;
31 | }
32 |
33 | .profile__name {
34 | font-size: 4rem;
35 | color: var(--primary-color);
36 | }
37 |
--------------------------------------------------------------------------------
/css/projetos.css:
--------------------------------------------------------------------------------
1 | .projetos {
2 | width: 100%;
3 | display: flex;
4 | flex-direction: column;
5 | gap: 64px;
6 | align-items: center;
7 | }
8 |
9 | .card-container {
10 | max-width: 1200px;
11 | width: 100%;
12 | display: flex;
13 | flex-wrap: wrap;
14 | justify-content: space-between;
15 | gap: 48px;
16 | }
17 |
18 | .card {
19 | position: relative;
20 | display: block;
21 | overflow: hidden;
22 | /* border: 3px solid var(--primary-color); */
23 | }
24 |
25 | .card::before {
26 | position: absolute;
27 | background-color: #1117;
28 | content: 'Clique aqui para visualizar';
29 | font-size: 1.5rem;
30 | color: #fff;
31 | text-align: center;
32 | width: 100%;
33 | height: 100%;
34 | display: grid;
35 | place-content: center;
36 | transform: translateY(100%);
37 | transition: transform 0.6s;
38 | }
39 |
40 | .card:hover::before {
41 | transform: translateY(0%);
42 | }
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # **PORTIFÓLIO VINICIUS NUNES - 2022**
2 |
3 | 
4 |
5 | ## [Clique aqui](https://viniciusnunes137.github.io/portifolio/) para acessar o site
6 |
7 | ## **SOBRE**
8 |
9 | - Site tipo do portifólio, onde foi construído com o intuito de divulgar a minha evolução como desenvolvedor web.
10 |
11 | - - Foi proposto esse projeto pelo professor de Linguagem de Marcação com a finalidade de replicar um projeto que desenvolvemos no FIGMA com a finalidade de compreender a @media para responsividade.
12 |
13 |
14 |
15 | ## **TECNOLOGIAS APLICADAS**
16 |
17 | - HTML5
18 | - CSS3
19 |
20 |
21 | ## **FERRAMENTAS**
22 |
23 | - VSCODE
24 | - GITHUB / GIT
25 | - FIGMA
26 | - FONT-AWESOME
27 |
28 |
29 | ## **CONCEITOS APLICADOS**
30 |
31 | - DISPLAY (GRID)
32 | - GRID (AREA)
33 | - CSS PORCIONADO
34 | - @MEDIA
35 |
36 | ## **AUTOR**
37 |
38 | - [VINICIUS NUNES](https://github.com/VINICIUSNUNES137)
39 |
40 |
--------------------------------------------------------------------------------
/mobile-navbar.js:
--------------------------------------------------------------------------------
1 | class MobileNavbar {
2 | constructor(mobileMenu, navList, navLinks) {
3 | this.mobileMenu = document.querySelector(mobileMenu)
4 | this.navList = document.querySelector(navList)
5 | this.navLinks = document.querySelectorAll(navLinks)
6 | this.activeClass = 'active'
7 |
8 | this.handleClick = this.handleClick.bind(this)
9 | }
10 |
11 | animateLinks() {
12 | this.navLinks.forEach((link, index) => {
13 | link.style.animation
14 | ? (link.style.animation = '')
15 | : (link.style.animation = `navLinkFade 0.5s ease forwards ${
16 | index / 7 + 0.3
17 | }s`)
18 | })
19 | }
20 |
21 | handleClick() {
22 | this.navList.classList.toggle(this.activeClass)
23 | this.mobileMenu.classList.toggle(this.activeClass)
24 | this.animateLinks()
25 | }
26 |
27 | addClickEvent() {
28 | this.mobileMenu.addEventListener('click', this.handleClick)
29 | }
30 |
31 | init() {
32 | if (this.mobileMenu) {
33 | this.addClickEvent()
34 | }
35 | return this
36 | }
37 | }
38 |
39 | const mobileNavbar = new MobileNavbar(
40 | '.mobile-menu',
41 | '.nav-list',
42 | '.nav-list li'
43 | )
44 | mobileNavbar.init()
45 |
--------------------------------------------------------------------------------
/css/contato.css:
--------------------------------------------------------------------------------
1 | .contatos {
2 | width: 100%;
3 | max-width: 1200px;
4 | display: grid;
5 | grid-template-areas:
6 | 'tittle tittle tittle'
7 | 'contato social link';
8 | grid-template-rows: auto 1fr;
9 | grid-template-columns: 1fr 2fr 1fr;
10 | align-items: center;
11 | }
12 |
13 | .contato-container {
14 | grid-area: contato;
15 | display: flex;
16 | flex-direction: column;
17 | gap: 16px;
18 | }
19 |
20 | .contato-container h3 {
21 | font-size: 1.5rem;
22 | }
23 |
24 | .contato-item {
25 | display: flex;
26 | gap: 12px;
27 | }
28 |
29 | .contato-item__icon {
30 | font-size: 1.25rem;
31 | }
32 |
33 | .social-container {
34 | grid-area: social;
35 | display: flex;
36 | justify-content: center;
37 | gap: 32px;
38 | }
39 |
40 | .social:hover {
41 | color: var(--primary-color);
42 | }
43 |
44 | .social {
45 | width: 64px;
46 | height: 64px;
47 | background-color: var(--icon-color);
48 | font-size: 2rem;
49 | display: grid;
50 | place-content: center;
51 | transition: color 0.5s;
52 | }
53 |
54 | .link-container {
55 | grid-area: link;
56 | display: flex;
57 | flex-direction: column;
58 | gap: 16px;
59 | text-align: center;
60 | }
61 |
62 | .link-container h3 {
63 | font-size: 1.5rem;
64 | }
65 |
--------------------------------------------------------------------------------
/css/sobre-mim.css:
--------------------------------------------------------------------------------
1 | .sobre-mim {
2 | max-width: 1200px;
3 | width: 100%;
4 | height: 100vh;
5 | display: grid;
6 | grid-template-areas:
7 | 'tittle tittle'
8 | 'description skills';
9 | grid-template-rows: auto 1fr;
10 | grid-template-columns: 1fr 1fr;
11 | gap: 64px;
12 | }
13 |
14 | .description {
15 | grid-area: description;
16 | display: flex;
17 | flex-direction: column;
18 | gap: 32px;
19 | }
20 |
21 | .description__tittle {
22 | font-size: 48px;
23 | color: var(--primary-color);
24 | }
25 |
26 | .description__text {
27 | font-size: 1.5rem;
28 | width: 85%;
29 | line-height: 150%;
30 | }
31 |
32 | .skills {
33 | grid-area: skills;
34 | display: flex;
35 | flex-direction: column;
36 | gap: 32px;
37 | }
38 |
39 | .skills__tittle {
40 | font-size: 48px;
41 | color: var(--primary-color);
42 | }
43 |
44 | .skills__container {
45 | display: flex;
46 | flex-wrap: wrap;
47 | gap: 16px;
48 | }
49 |
50 | .skills__icon {
51 | width: 150px;
52 | height: 150px;
53 | background-color: var(--icon-color);
54 | display: flex;
55 | flex-direction: column;
56 | justify-content: center;
57 | align-items: center;
58 | gap: 12px;
59 | }
60 |
61 | .skills__icon i {
62 | font-size: 3rem;
63 | }
64 |
65 | .skills__icon span {
66 | font-weight: 700;
67 | font-size: 1.5rem;
68 | }
69 |
--------------------------------------------------------------------------------
/css/tablet.css:
--------------------------------------------------------------------------------
1 | /* TABLET */
2 |
3 | @media (max-width: 960px) {
4 | nav {
5 | display: none;
6 | }
7 | header {
8 | max-width: 650px;
9 | display: flex;
10 | justify-content: space-between;
11 | }
12 |
13 | body {
14 | max-width: 960px;
15 | width: 100%;
16 | }
17 |
18 | .navigation-icon {
19 | visibility: visible;
20 | font-size: 1.5rem;
21 | }
22 |
23 | .home {
24 | display: flex;
25 | flex-direction: column;
26 | height: 1000px;
27 | align-items: center;
28 | justify-content: center;
29 | }
30 |
31 | .section__tittle {
32 | font-size: 7rem;
33 | }
34 |
35 | .profile {
36 | display: flex;
37 | flex-direction: column;
38 | text-align: center;
39 | line-height: 60px;
40 | }
41 |
42 | .sobre-mim {
43 | width: 100%;
44 | height: 1400px;
45 | display: flex;
46 | flex-direction: column;
47 | align-items: flex-start;
48 | padding-left: 28.5px;
49 | }
50 |
51 | .skills {
52 | width: 75%;
53 | }
54 |
55 | .skills__container {
56 | gap: 48px;
57 | }
58 |
59 | .description__text {
60 | width: 450px;
61 | }
62 |
63 | .projetos {
64 | max-height: 2800px;
65 | height: 100%;
66 | display: flex;
67 | flex-direction: column;
68 | }
69 | .card-container {
70 | flex-wrap: wrap;
71 | width: 85%;
72 | display: flex;
73 | justify-content: center;
74 |
75 | }
76 |
77 | .card-container img {
78 | width: 600px;
79 | }
80 | .contatos {
81 | display: flex;
82 | flex-direction: column;
83 | height: 800px;
84 | gap: 48px;
85 | }
86 |
87 | .contato-container {
88 | display: flex;
89 | align-items: center;
90 | }
91 |
92 | .link-container {
93 | display: flex;
94 | align-items: center;
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/css/style.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --primary-color: #9562f3;
3 | --icon-color: #121216;
4 | }
5 |
6 | html {
7 | scroll-behavior: smooth;
8 | }
9 |
10 | body {
11 | display: grid;
12 | grid-template-areas: 'content';
13 | font-family: 'Ubuntu', sans-serif;
14 | color: #fff;
15 | background-color: #000;
16 | }
17 |
18 | main {
19 | grid-area: content;
20 | display: flex;
21 | flex-direction: column;
22 | align-items: center;
23 | }
24 |
25 | header {
26 | grid-area: content;
27 | z-index: 777;
28 | max-width: 1200px;
29 | width: 100%;
30 | place-self: start center;
31 | margin-top: 48px;
32 | display: flex;
33 | justify-content: space-between;
34 | align-items: center;
35 | }
36 |
37 | section {
38 | height: 100vh;
39 | }
40 |
41 | .voltar {
42 | position: fixed;
43 | right: 16px;
44 | bottom: 16px;
45 | display: grid;
46 | place-content: center;
47 | font-size: 2.5rem;
48 | transition: all 0.5s;
49 | }
50 | .voltar:hover {
51 | color: var(--primary-color);
52 | z-index: 9999;
53 | }
54 |
55 | footer {
56 | height: 50px;
57 | width: 100%;
58 | background-color: #0005;
59 | grid-area: content;
60 | place-self: end center;
61 | display: flex;
62 | align-items: center;
63 | justify-content: center;
64 | border-top: 2px solid white;
65 | font-size: 1rem;
66 | gap: 3px;
67 | }
68 |
69 | .copy-name {
70 | font-size: 1.1rem;
71 | color: var(--primary-color);
72 | font-weight: 600;
73 | }
74 |
75 | @media (max-width: 3000px) {
76 | .navigation-icon {
77 | visibility: hidden;
78 | }
79 | }
80 |
81 | /* Barra de Rolagem */
82 |
83 | /* Fundo que corre */
84 | ::-webkit-scrollbar-track {
85 | background-color: #232c3b;
86 | }
87 | /* Fundo que corre */
88 |
89 | ::-webkit-scrollbar {
90 | width: 10px;
91 | background: #f4f4f4;
92 | }
93 |
94 | /* Linha que desce */
95 | ::-webkit-scrollbar-thumb {
96 | background: var(--primary-color);
97 | border-radius: 15px;
98 | }
99 | /* Linha que desce*/
100 |
101 | /* Barra de Rolagem */
102 |
--------------------------------------------------------------------------------
/css/mobile.css:
--------------------------------------------------------------------------------
1 | @media (max-width: 640px) {
2 | body {
3 | width: 100%;
4 | }
5 |
6 | footer {
7 | font-size: 0.75rem;
8 | }
9 |
10 | .copy-name {
11 | font-size: 0.75rem;
12 | }
13 |
14 | header {
15 | max-width: 400px;
16 | width: 100%;
17 | justify-content: space-between;
18 | padding-left: 32px;
19 | padding-right: 32px;
20 | }
21 |
22 | .logo {
23 | display: none;
24 | }
25 |
26 | header::before {
27 | content: '>';
28 | font-size: 1.75rem;
29 | color: var(--primary-color);
30 | }
31 |
32 | .home {
33 | display: flex;
34 | position: relative;
35 | flex-direction: column;
36 | justify-content: space-around;
37 | padding-top: 48px;
38 | width: 100%;
39 | height: 100vh;
40 | }
41 |
42 | .profile__text {
43 | font-size: 1.5rem;
44 | }
45 |
46 | .profile__name {
47 | font-size: 3rem;
48 | }
49 |
50 | .profile__foto {
51 | width: 70vw;
52 | }
53 |
54 | .section__tittle {
55 | font-size: 3.5rem;
56 | }
57 |
58 | .description__tittle {
59 | font-size: 3rem;
60 | text-align: center;
61 | }
62 |
63 | .description__text {
64 | text-align: justify;
65 | width: 80vw;
66 | }
67 |
68 | .skills__tittle {
69 | font-size: 3rem;
70 | text-align: center;
71 | }
72 |
73 | .sobre-mim {
74 | height: 2200px;
75 | display: flex;
76 | width: 100vw;
77 | align-items: center;
78 | gap: 100px;
79 | padding: 0;
80 | }
81 |
82 | .skills__container {
83 | justify-content: center;
84 | }
85 |
86 | .projetos {
87 | height: 1800px;
88 | display: flex;
89 | }
90 |
91 | .card-container {
92 | display: flex;
93 | justify-content: center;
94 | }
95 |
96 | .card-container img {
97 | width: 350px;
98 | }
99 |
100 | h2 {
101 | display: flex;
102 | justify-content: center;
103 | }
104 |
105 | .contatos {
106 | height: 800px;
107 | }
108 |
109 | .social-container {
110 | flex-direction: column;
111 | }
112 | }
113 |
114 | .copy {
115 | font-size: 0.7rem;
116 | }
117 |
118 | .copy-name {
119 | font-size: 0.7rem;
120 | }
121 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Portifólio - Vinicius Nunes
7 |
8 |
9 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | viniciusnunes
32 |
33 |
34 |
35 |
36 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
64 |
65 | Olá, meu nome é
66 |
Vinicius Nunes
67 | e sou desenvolvedor Frontend
68 |
69 |
70 |
71 |
72 | SOBRE MIM
73 |
74 |
QUEM SOU?
75 |
76 | Sou iniciante na área de criação e manutenção de sites, tenho
77 | conhecimento em prototipação e designer sempre pensando na
78 | experiência do usuário. Sou apaixonado pelo mundo digital e
79 | principalmente desenvolvimento, sempre procurando inspiração nos
80 | meus colegas de trabalho e no mundo que me rodeia.
81 |
82 |
83 |
84 |
SKILLS
85 |
86 |
87 |
88 | HTML
89 |
90 |
91 |
92 | CSS
93 |
94 |
95 |
96 | JS
97 |
98 |
99 |
100 | FIGMA
101 |
102 |
103 |
104 | GITHUB
105 |
106 |
107 |
108 | JAVA
109 |
110 |
111 |
112 |
113 |
114 | PROJETOS
115 |
159 |
160 |
161 | CONTATOS
162 |
163 |
164 |
165 |
170 |
171 |
172 |
177 |
178 |
179 |
184 |
185 |
186 |
187 |
189 |
190 |
191 |
194 |
195 |
196 |
197 |
198 |
199 |
200 | Todos os direitos reservados 2022 | Desenvolvido por
201 |
202 | Vinicius Nunes
205 |
206 |
207 |
208 |
209 |
210 |
--------------------------------------------------------------------------------