From f75ce9b99c44623f28937d18f65b6cd16d1153c8 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Wed, 24 Jun 2026 14:04:39 +0000 Subject: [PATCH 1/5] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20[UX=20improvement?= =?UTF-8?q?]=20=EC=8A=A4=ED=8B=B0=ED=82=A4=20=ED=97=A4=EB=8D=94=EB=A5=BC?= =?UTF-8?q?=20=EA=B3=A0=EB=A0=A4=ED=95=9C=20=EC=8A=A4=ED=81=AC=EB=A1=A4=20?= =?UTF-8?q?=EC=97=AC=EB=B0=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit html 요소에 `scroll-padding-top: 81px`를 추가하여, 앵커 링크 클릭 시 스크롤 이동 대상이 스티키 헤더에 가려지는 문제를 해결하고 접근성/UX를 개선했습니다. --- .Jules/palette.md | 3 +++ styles.css | 1 + 2 files changed, 4 insertions(+) diff --git a/.Jules/palette.md b/.Jules/palette.md index 3723067..b401fa7 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -5,3 +5,6 @@ ## 2024-06-21 - Added skip-to-content link **Learning:** Found a missing skip-to-content link, which is a key accessibility feature to help keyboard and screen reader users bypass navigation. Additionally learned that giving `
` `tabindex="-1"` and removing its outline when `:focus-visible` ensures proper focus handling after clicking the skip link without disruptive visual outlines. **Action:** Always include a skip-to-content link near the start of the `body` and manage target focus appropriately. +## 2024-06-24 - [Anchor Link Scroll Padding] +**Learning:** 스티키 헤더가 적용된 페이지에서 앵커 링크로 이동 시, 기본 스크롤 동작은 타겟 요소의 상단을 브라우저 상단에 맞추기 때문에 콘텐츠가 헤더에 가려지는 문제가 발생함을 확인했습니다. +**Action:** 스티키 헤더의 높이만큼 `html` 요소에 `scroll-padding-top` 속성을 추가하여 앵커 링크 이동 시에도 적절한 여백을 확보하고 접근성을 개선합니다. diff --git a/styles.css b/styles.css index dfc509c..aada0d5 100644 --- a/styles.css +++ b/styles.css @@ -23,6 +23,7 @@ html { scroll-behavior: smooth; + scroll-padding-top: 81px; } body { From dcec8bc10033a37dd689489bc1414f562549d604 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Wed, 24 Jun 2026 14:42:54 +0000 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20[UX=20improvement?= =?UTF-8?q?]=20=EC=8A=A4=ED=8B=B0=ED=82=A4=20=ED=97=A4=EB=8D=94=EB=A5=BC?= =?UTF-8?q?=20=EA=B3=A0=EB=A0=A4=ED=95=9C=20=EC=95=B5=EC=BB=A4=20=EB=A7=81?= =?UTF-8?q?=ED=81=AC=20=EC=8A=A4=ED=81=AC=EB=A1=A4=20=ED=8C=A8=EB=94=A9=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit html 요소에 `scroll-padding-top: 81px`를 추가하여, 앵커 링크 클릭 시 스크롤 이동 대상이 스티키 헤더에 가려지는 문제를 해결하고 접근성/UX를 개선했습니다. From 5d47d02172404a8d61472ca67b70dfe6843ff9b8 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Wed, 24 Jun 2026 15:01:25 +0000 Subject: [PATCH 3/5] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20[UX=20improvement?= =?UTF-8?q?]=20=EC=8A=A4=ED=8B=B0=ED=82=A4=20=ED=97=A4=EB=8D=94=EB=A5=BC?= =?UTF-8?q?=20=EA=B3=A0=EB=A0=A4=ED=95=9C=20=EC=95=B5=EC=BB=A4=20=EB=A7=81?= =?UTF-8?q?=ED=81=AC=20=EC=8A=A4=ED=81=AC=EB=A1=A4=20=ED=8C=A8=EB=94=A9=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit html 요소에 `scroll-padding-top: 81px`를 추가하여, 앵커 링크 클릭 시 스크롤 이동 대상이 스티키 헤더에 가려지는 문제를 해결하고 접근성/UX를 개선했습니다. From f2f20229ac6b85ba0d40de859354836472f3fdbf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Jun 2026 15:37:58 +0000 Subject: [PATCH 4/5] Add opencode.jsonc with required MCP server and model configuration --- opencode.jsonc | 108 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 opencode.jsonc diff --git a/opencode.jsonc b/opencode.jsonc new file mode 100644 index 0000000..d31842f --- /dev/null +++ b/opencode.jsonc @@ -0,0 +1,108 @@ +{ + "$schema": "https://opencode.ai/config.json", + "model": "github-models/openai/gpt-5", + "small_model": "github-models/deepseek/deepseek-v3-0324", + "enabled_providers": ["github-models"], + "mcp": { + "codegraph": { + "type": "local", + "command": [ + "npx", + "-y", + "@colbymchenry/codegraph@0.9.9", + "serve", "--mcp" + ], + "enabled": true, + "environment": { + "NPM_CONFIG_IGNORE_SCRIPTS": "true", + "NPM_CONFIG_LOGLEVEL": "error" + } + }, + "deepwiki": { + "type": "remote", + "url": "https://mcp.deepwiki.com/mcp", + "enabled": true, + "timeout": 10000 + }, + "context7": { + "type": "local", + "command": [ + "npx", + "-y", + "@upstash/context7-mcp@3.1.0", + "--transport", + "stdio" + ], + "enabled": true, + "timeout": 10000, + "environment": { + "NPM_CONFIG_IGNORE_SCRIPTS": "true", + "NPM_CONFIG_LOGLEVEL": "error" + } + }, + "web_search": { + "type": "local", + "command": [ + "npx", + "-y", + "@guhcostan/web-search-mcp@1.0.5" + ], + "enabled": true, + "timeout": 10000, + "environment": { + "NPM_CONFIG_IGNORE_SCRIPTS": "true", + "NPM_CONFIG_LOGLEVEL": "error" + } + } + }, + "permission": { + "edit": "deny", + "bash": "deny", + "read": "allow", + "grep": "allow", + "glob": "allow", + "list": "allow", + "task": "deny", + "webfetch": "deny", + "websearch": "deny", + "lsp": "deny", + "external_directory": "allow" + }, + "provider": { + "github-models": { + "npm": "@ai-sdk/openai-compatible", + "name": "GitHub Models", + "options": { + "baseURL": "https://models.github.ai/inference", + "apiKey": "{env:STRIX_GITHUB_MODELS_TOKEN}" + }, + "models": { + "openai/gpt-5": { + "name": "OpenAI GPT-5", + "tool_call": true, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "deepseek/deepseek-r1-0528": { + "name": "DeepSeek R1 0528", + "tool_call": true, + "reasoning": true, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "deepseek/deepseek-v3-0324": { + "name": "DeepSeek V3 0324", + "tool_call": true, + "limit": { + "context": 128000, + "output": 4096 + } + } + } + } + } +} From 56d872bdfbd0a39eeead1bad4b53f0391e4ceac9 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Mon, 29 Jun 2026 01:38:54 +0900 Subject: [PATCH 5/5] Extract sticky header offset for anchors --- .Jules/palette.md | 3 ++- styles.css | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.Jules/palette.md b/.Jules/palette.md index b401fa7..0058b09 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -5,6 +5,7 @@ ## 2024-06-21 - Added skip-to-content link **Learning:** Found a missing skip-to-content link, which is a key accessibility feature to help keyboard and screen reader users bypass navigation. Additionally learned that giving `
` `tabindex="-1"` and removing its outline when `:focus-visible` ensures proper focus handling after clicking the skip link without disruptive visual outlines. **Action:** Always include a skip-to-content link near the start of the `body` and manage target focus appropriately. -## 2024-06-24 - [Anchor Link Scroll Padding] + +## 2024-06-24 - Anchor Link Scroll Padding **Learning:** 스티키 헤더가 적용된 페이지에서 앵커 링크로 이동 시, 기본 스크롤 동작은 타겟 요소의 상단을 브라우저 상단에 맞추기 때문에 콘텐츠가 헤더에 가려지는 문제가 발생함을 확인했습니다. **Action:** 스티키 헤더의 높이만큼 `html` 요소에 `scroll-padding-top` 속성을 추가하여 앵커 링크 이동 시에도 적절한 여백을 확보하고 접근성을 개선합니다. diff --git a/styles.css b/styles.css index aada0d5..2ba2dcd 100644 --- a/styles.css +++ b/styles.css @@ -15,6 +15,7 @@ --line: #d6dad8; --white: #ffffff; --shadow: 0 24px 70px rgba(22, 38, 61, 0.12); + --header-offset: 81px; } * { @@ -23,7 +24,7 @@ html { scroll-behavior: smooth; - scroll-padding-top: 81px; + scroll-padding-top: var(--header-offset); } body { @@ -114,7 +115,7 @@ a { } .hero { - min-height: min(620px, calc(100vh - 81px)); + min-height: min(620px, calc(100vh - var(--header-offset))); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr); gap: clamp(32px, 5vw, 72px);