6a37cfead4
공개 사이트 (port 5001):
- Program.cs: AddRazorPages, AddInfrastructure, AddApplication, UsePathBase("/taxbaik")
- appsettings.json: PostgreSQL 연결 문자열
레이아웃 및 공통 컴포넌트:
- _Layout.cshtml: Bootstrap 5, Noto Sans KR, OG 메타 태그, 모바일 고정 CTA 바
- _Header.cshtml: sticky navbar, 로고, 네비게이션 링크, 상담신청 버튼
- _Footer.cshtml: 사업자정보, 연락처, KakaoTalk, 저작권
- _ViewImports.cshtml, _ViewStart.cshtml
- site.css: CSS 변수 (--color-primary, --color-cta 등), 반응형 스타일
- site.js: 모바일 CTA 바 제어, sticky 헤더 효과
페이지 구현:
1. Index.cshtml (메인 랜딩): Hero, 신뢰도 strip, 서비스 카드, 최근 블로그
2. Services.cshtml (서비스): 4개 서비스 소개, 상담료 안내
3. About.cshtml (소개): 세무사 프로필, 3개 자격증, 서비스 철학
4. Contact.cshtml (상담신청): 폼 (이름, 전화, 이메일, 분야, 문의), ValidationException 처리
5. Blog/Index.cshtml (블로그 목록): 카테고리 필터 탭, 12개 그리드, 페이지네이션
6. Blog/Post.cshtml (포스트 상세): 브레드크럼, 제목, 메타정보, 콘텐츠, CTA, 공유 버튼
SEO:
- robots.txt: /taxbaik 허용, /admin 차단, sitemap 링크
- Sitemap.cshtml: 동적 생성 (정적 페이지 + 모든 포스트)
기술:
- Dapper 기반 DB 접근
- 페이징: 12개/페이지
- 한국어 입력값 검증
Co-Authored-By: Claude <noreply@anthropic.com>
111 lines
1.8 KiB
CSS
111 lines
1.8 KiB
CSS
:root {
|
|
--color-primary: #1B4F8A;
|
|
--color-primary-dark: #133970;
|
|
--color-accent: #C9A227;
|
|
--color-cta: #E05A2B;
|
|
--color-bg: #F7F9FC;
|
|
--color-text: #1A1A2E;
|
|
--color-text-muted: #5A6A7A;
|
|
}
|
|
|
|
* {
|
|
font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif;
|
|
}
|
|
|
|
body {
|
|
color: var(--color-text);
|
|
background-color: #fff;
|
|
}
|
|
|
|
.btn-primary {
|
|
background-color: var(--color-primary);
|
|
border-color: var(--color-primary);
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
background-color: var(--color-primary-dark);
|
|
border-color: var(--color-primary-dark);
|
|
}
|
|
|
|
.btn-warning {
|
|
background-color: var(--color-cta);
|
|
border-color: var(--color-cta);
|
|
}
|
|
|
|
.btn-warning:hover {
|
|
background-color: #d45a1f;
|
|
border-color: #d45a1f;
|
|
}
|
|
|
|
.bg-primary {
|
|
background-color: var(--color-primary) !important;
|
|
}
|
|
|
|
.text-primary {
|
|
color: var(--color-primary) !important;
|
|
}
|
|
|
|
.hero-section {
|
|
padding: 80px 0;
|
|
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
|
|
}
|
|
|
|
.mobile-cta-bar {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
background: white;
|
|
border-top: 1px solid #ddd;
|
|
padding: 10px;
|
|
z-index: 1000;
|
|
}
|
|
|
|
.btn-kakao-mobile {
|
|
display: block;
|
|
width: 100%;
|
|
padding: 12px;
|
|
background: #FFE812;
|
|
color: black;
|
|
text-decoration: none;
|
|
border-radius: 8px;
|
|
font-weight: 500;
|
|
text-align: center;
|
|
border: none;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.btn-kakao-mobile:hover {
|
|
background: #FDD835;
|
|
}
|
|
|
|
.card {
|
|
transition: transform 0.2s;
|
|
}
|
|
|
|
.card:hover {
|
|
transform: translateY(-4px);
|
|
}
|
|
|
|
.navbar-brand {
|
|
font-size: 1.3rem;
|
|
}
|
|
|
|
.navbar {
|
|
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
body {
|
|
padding-bottom: 70px;
|
|
}
|
|
|
|
.hero-section {
|
|
padding: 40px 0;
|
|
}
|
|
|
|
.hero-section h1 {
|
|
font-size: 1.8rem;
|
|
}
|
|
}
|