| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- @use './styles/tokens';
- @tailwind base;
- @tailwind components;
- @tailwind utilities;
- html {
- min-height: 100vh;
- min-height: 100dvh;
- width: 100%;
- min-width: 355px;
- }
- body {
- min-height: 100vh;
- min-height: 100dvh;
- width: 100%;
- min-width: 355px;
- overflow-x: hidden;
- overflow-y: auto;
- margin: 0;
- padding: 0;
- }
- // 컬러/레이아웃/밀도 CSS 변수는 app/styles/tokens/* 로 이동 (D6 디자인 토큰 — 다크 기본)
- @layer base {
- * {
- @apply border-border;
- }
- body {
- @apply bg-background text-foreground;
- }
- }
- // 접근성 — 키보드 포커스 링 (마우스 클릭에는 미적용, 포인트 컬러 토큰)
- :focus-visible {
- outline: var(--focus-ring-width) solid var(--focus-ring-color);
- outline-offset: 1px;
- }
- // 숫자 정렬 — 테이블 전역 tabular figures (폰트 추가 없이, D6 §3.3)
- table {
- font-variant-numeric: tabular-nums;
- }
- select, input, textarea {
- font-size: 1rem;
- padding: 5px;
- color: var(--text-primary);
- background: var(--bg-input);
- border: 1px solid var(--border-strong);
- border-radius: 3px;
- line-height: inherit;
- transition: border-color 0.3s ease;
- &:focus,
- &:hover {
- outline: none;
- border-color: var(--text-link);
- }
- &:focus {
- -webkit-box-shadow: inset 1px 2px 2px rgba(0, 0, 0, 0.05), 0 0 4px rgba(44, 112, 170, 0.8);
- box-shadow: inset 1px 2px 2px rgba(0, 0, 0, 0.05), 0 0 4px rgba(44, 112, 170, 0.8);
- }
- }
- // shadcn 폼 컨트롤 포커스 글로우 (Select trigger, Checkbox 등)
- [role="input"]
- [role="combobox"],
- [role="checkbox"] {
- transition: border-color 0.3s ease;
- &:focus,
- &:hover {
- outline: none;
- border-color: var(--text-link);
- }
- &:focus {
- -webkit-box-shadow: inset 1px 2px 2px rgba(0, 0, 0, 0.05), 0 0 4px rgba(44, 112, 170, 0.8);
- box-shadow: inset 1px 2px 2px rgba(0, 0, 0, 0.05), 0 0 4px rgba(44, 112, 170, 0.8);
- }
- }
- // 모든 버튼 속성값
- .btn {
- display: inline-block;
- padding: 5px 15px;
- border-radius: 4px;
- height: auto;
- text-align: center;
- cursor: pointer;
- }
- // 기본 버튼
- .btn-default {
- color: var(--text-primary);
- background: var(--bg-subtle);
- border: 1px solid var(--btn-default-border);
- -webkit-box-shadow: inset 0 -1px 0 0 var(--btn-default-border);
- box-shadow: inset 0 -1px 0 0 var(--btn-default-border);
- &:hover {
- background: var(--btn-default-hover);
- }
- }
- // 제출/Primary 버튼 — 포인트 컬러 1개 원칙: --btn-primary 는 --az-accent 로 수렴 (tokens/_colors.scss)
- .btn-primary {
- color: var(--btn-primary-text, #fff);
- background: var(--btn-primary);
- border: 1px solid var(--btn-primary);
- -webkit-box-shadow: inset 0 -2px 0 0 var(--btn-primary-shadow);
- box-shadow: inset 0 -2px 0 0 var(--btn-primary-shadow);
- &:hover {
- background: var(--btn-primary-hover);
- border-color: var(--btn-primary-hover);
- }
- }
|