Skip to content

Commit 6e7f55c

Browse files
feat(portfolio): form fix, FAQ chat panel, CV download, companies, iOS glass theme
- fix(contact): remove data-i18n to fix [object Object] on labels/placeholders - feat(about): CV Completo + CV Compacto download options - feat(ui): floating chat button opens side panel with FAQ (keyword-based answers) - feat(experience): add ONS, update Infosys; correct companies (Quali IT, ONS, TCS, Infosys) - feat(theme): iOS-style glassmorphism for dark and light, improved readability - style(cards): equal height for service and contact cards; chat panel styles - fix(css): timeline longhand properties to satisfy stylelint no-shorthand-overrides - fix(html): unique id for about tab (about-experience) to resolve id-unique - chore(eslint): add process to globals for NODE_ENV check Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 4b9535c commit 6e7f55c

File tree

10 files changed

+3975
-1579
lines changed

10 files changed

+3975
-1579
lines changed

.eslintrc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"max-lines-per-function": ["warn", { "max": 50, "skipComments": true }]
2626
},
2727
"globals": {
28-
"emailjs": "readonly"
28+
"emailjs": "readonly",
29+
"process": "readonly"
2930
}
3031
}

.gitignore

Lines changed: 23 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,38 @@
1-
# Editor e IDE
2-
.vscode/*
3-
!.vscode/settings.json
1+
# Dependencies
2+
node_modules/
3+
package-lock.json
4+
5+
# Build outputs
6+
dist/
7+
build/
8+
script.js
9+
10+
# Environment variables
11+
.env
12+
.env.local
13+
.env.*.local
14+
15+
# IDE
16+
.vscode/
417
.idea/
5-
.cursor/
18+
*.swp
19+
*.swo
20+
*~
621

722
# OS
823
.DS_Store
924
Thumbs.db
10-
desktop.ini
1125

1226
# Logs
1327
*.log
1428
npm-debug.log*
1529
yarn-debug.log*
1630
yarn-error.log*
1731

18-
# Temporary files
19-
*.tmp
20-
*.temp
21-
*~
22-
23-
# Backup files
24-
*.backup
25-
*.bak
26-
*.old
27-
28-
# Environment variables (NUNCA commitar tokens!)
29-
.env
30-
.env.local
31-
.env.*.local
32-
33-
# Dependencies
34-
node_modules/
35-
package-lock.json
36-
yarn.lock
37-
pnpm-lock.yaml
38-
39-
# Test coverage
32+
# Coverage
4033
coverage/
4134
.nyc_output/
4235

43-
# Arquivos pessoais que não devem estar no repo
44-
*.pdf
45-
!README.pdf
46-
Curriculo*.pdf
47-
Carta*.pdf
48-
49-
# Configurações específicas do editor/IDE
50-
.github/copilot-instructions.md
51-
.github/mcp.json
52-
53-
# Build outputs (se houver)
54-
dist/
55-
build/
56-
*.min.js
57-
*.min.css
36+
# Temporary files
37+
*.tmp
38+
*.temp

.vscode/settings.json

Lines changed: 206 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,213 @@
11
{
2-
"github.copilot.enable": {
3-
"*": true,
4-
"plaintext": true,
5-
"markdown": true,
6-
"html": true,
7-
"css": true,
8-
"javascript": true,
9-
"json": true
10-
},
11-
"github.copilot.advanced": {
12-
"debug.overrideEngine": "gpt-4",
13-
"debug.testOverrideProxyUrl": "",
14-
"inlineSuggestCount": 3
15-
},
16-
"files.associations": {
17-
"*.html": "html",
18-
"*.css": "css",
19-
"*.js": "javascript",
20-
"mcp.json": "json"
21-
},
22-
"emmet.includeLanguages": {
23-
"javascript": "javascriptreact"
24-
},
2+
// ============================================
3+
// CURSOR AI - CONFIGURAÇÕES DE SISTEMA
4+
// ============================================
5+
6+
// System prompt personalizado (backup das regras do .cursorrules)
7+
"cursor.general.enableCustomSystemPrompt": true,
8+
9+
// ============================================
10+
// EDITOR - CONFIGURAÇÕES GERAIS
11+
// ============================================
12+
2513
"editor.formatOnSave": true,
26-
"editor.defaultFormatter": "esbenp.prettier-vscode",
27-
"html.format.wrapAttributes": "force-expand-multiline",
28-
"css.lint.validProperties": ["backdrop-filter", "scrollbar-width", "scrollbar-color"],
29-
"[html]": {
30-
"editor.defaultFormatter": "vscode.html-language-features"
14+
"editor.codeActionsOnSave": {
15+
"source.fixAll": "explicit",
16+
"source.organizeImports": "explicit"
17+
},
18+
"editor.tabSize": 2,
19+
"editor.insertSpaces": true,
20+
"editor.detectIndentation": true,
21+
"editor.rulers": [80, 120],
22+
"editor.wordWrap": "on",
23+
"editor.bracketPairColorization.enabled": true,
24+
"editor.guides.bracketPairs": true,
25+
"editor.inlineSuggest.enabled": true,
26+
"editor.suggestSelection": "first",
27+
"editor.quickSuggestions": {
28+
"strings": true
3129
},
32-
"[css]": {
33-
"editor.defaultFormatter": "vscode.css-language-features"
30+
31+
// ============================================
32+
// FILES - CONFIGURAÇÕES DE ARQUIVOS
33+
// ============================================
34+
35+
"files.trimTrailingWhitespace": true,
36+
"files.insertFinalNewline": true,
37+
"files.trimFinalNewlines": true,
38+
"files.encoding": "utf8",
39+
"files.eol": "\n",
40+
"files.exclude": {
41+
"**/.git": true,
42+
"**/.DS_Store": true,
43+
"**/node_modules": true,
44+
"**/__pycache__": true,
45+
"**/.pytest_cache": true,
46+
"**/*.pyc": true,
47+
"**/dist": true,
48+
"**/build": true,
49+
"**/.next": true,
50+
"**/.nuxt": true,
51+
"**/coverage": true
3452
},
53+
54+
// ============================================
55+
// TYPESCRIPT/JAVASCRIPT
56+
// ============================================
57+
58+
"typescript.updateImportsOnFileMove.enabled": "always",
59+
"typescript.suggest.autoImports": true,
60+
"typescript.preferences.importModuleSpecifier": "relative",
61+
"javascript.updateImportsOnFileMove.enabled": "always",
62+
"javascript.suggest.autoImports": true,
63+
64+
// ESLint
65+
"eslint.enable": true,
66+
"eslint.validate": [
67+
"javascript",
68+
"javascriptreact",
69+
"typescript",
70+
"typescriptreact"
71+
],
72+
"eslint.format.enable": true,
73+
74+
// Prettier
75+
"prettier.enable": true,
76+
"prettier.requireConfig": true,
77+
78+
// ============================================
79+
// PYTHON
80+
// ============================================
81+
82+
"python.linting.enabled": true,
83+
"python.linting.pylintEnabled": false,
84+
"python.linting.flake8Enabled": true,
85+
"python.linting.mypyEnabled": true,
86+
"python.formatting.provider": "black",
87+
"python.sortImports.args": ["--profile", "black"],
88+
"python.analysis.typeCheckingMode": "basic",
89+
"python.analysis.autoImportCompletions": true,
90+
91+
// ============================================
92+
// GO
93+
// ============================================
94+
95+
"go.formatTool": "gofmt",
96+
"go.lintTool": "golangci-lint",
97+
"go.lintOnSave": "workspace",
98+
"go.useLanguageServer": true,
99+
100+
// ============================================
101+
// C# / .NET
102+
// ============================================
103+
104+
"csharp.format.enable": true,
105+
"omnisharp.enableRoslynAnalyzers": true,
106+
"omnisharp.enableEditorConfigSupport": true,
107+
108+
// ============================================
109+
// GIT
110+
// ============================================
111+
112+
"git.enableSmartCommit": true,
113+
"git.confirmSync": false,
114+
"git.autofetch": true,
115+
"git.suggestSmartCommit": true,
116+
117+
// ============================================
118+
// TERMINAL
119+
// ============================================
120+
121+
"terminal.integrated.defaultProfile.windows": "PowerShell",
122+
"terminal.integrated.fontFamily": "MesloLGS NF",
123+
"terminal.integrated.fontSize": 14,
124+
125+
// ============================================
126+
// FORMATADORES ESPECÍFICOS
127+
// ============================================
128+
35129
"[javascript]": {
36-
"editor.defaultFormatter": "vscode.typescript-language-features"
130+
"editor.defaultFormatter": "vscode.typescript-language-features",
131+
"editor.formatOnSave": true
132+
},
133+
"[javascriptreact]": {
134+
"editor.defaultFormatter": "vscode.typescript-language-features",
135+
"editor.formatOnSave": true
136+
},
137+
"[typescript]": {
138+
"editor.defaultFormatter": "vscode.typescript-language-features",
139+
"editor.formatOnSave": true
140+
},
141+
"[typescriptreact]": {
142+
"editor.defaultFormatter": "vscode.typescript-language-features",
143+
"editor.formatOnSave": true
144+
},
145+
"[json]": {
146+
"editor.defaultFormatter": "vscode.json-language-features",
147+
"editor.formatOnSave": true
148+
},
149+
"[jsonc]": {
150+
"editor.defaultFormatter": "vscode.json-language-features",
151+
"editor.formatOnSave": true
152+
},
153+
"[python]": {
154+
"editor.defaultFormatter": null,
155+
"editor.formatOnSave": true,
156+
"editor.codeActionsOnSave": {
157+
"source.organizeImports": "explicit"
158+
}
159+
},
160+
"[go]": {
161+
"editor.formatOnSave": true,
162+
"editor.codeActionsOnSave": {
163+
"source.organizeImports": "explicit"
164+
}
165+
},
166+
"[csharp]": {
167+
"editor.formatOnSave": true
168+
},
169+
"[markdown]": {
170+
"editor.formatOnSave": true,
171+
"editor.wordWrap": "on",
172+
"editor.quickSuggestions": {
173+
"comments": "off",
174+
"strings": "off",
175+
"other": "off"
176+
}
177+
},
178+
179+
// ============================================
180+
// EXTENSÕES RECOMENDADAS
181+
// ============================================
182+
183+
"extensions.ignoreRecommendations": true,
184+
185+
// ============================================
186+
// SEGURANÇA
187+
// ============================================
188+
189+
"security.workspace.trust.enabled": true,
190+
"security.workspace.trust.untrustedFiles": "prompt",
191+
192+
// ============================================
193+
// PERFORMANCE
194+
// ============================================
195+
196+
"search.exclude": {
197+
"**/node_modules": true,
198+
"**/bower_components": true,
199+
"**/*.code-search": true,
200+
"**/dist": true,
201+
"**/build": true,
202+
"**/.next": true,
203+
"**/coverage": true
204+
},
205+
"files.watcherExclude": {
206+
"**/.git/objects/**": true,
207+
"**/.git/subtree-cache/**": true,
208+
"**/node_modules/**": true,
209+
"**/.hg/store/**": true,
210+
"**/dist/**": true,
211+
"**/build/**": true
37212
}
38213
}

0 commit comments

Comments
 (0)