globals.scss 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. @tailwind base;
  2. @tailwind components;
  3. @tailwind utilities;
  4. html {
  5. min-height: 100vh;
  6. width: 100%;
  7. min-width: 355px;
  8. }
  9. body {
  10. min-height: 100vh;
  11. width: 100%;
  12. min-width: 355px;
  13. overflow-x: hidden;
  14. overflow-y: auto;
  15. margin: 0;
  16. padding: 0;
  17. }
  18. @layer base {
  19. :root {
  20. --background: 0 0% 100%;
  21. --foreground: 0 0% 3.9%;
  22. --card: 0 0% 100%;
  23. --card-foreground: 0 0% 3.9%;
  24. --popover: 0 0% 100%;
  25. --popover-foreground: 0 0% 3.9%;
  26. --primary: 0 0% 9%;
  27. --primary-foreground: 0 0% 98%;
  28. --secondary: 0 0% 96.1%;
  29. --secondary-foreground: 0 0% 9%;
  30. --muted: 0 0% 96.1%;
  31. --muted-foreground: 0 0% 45.1%;
  32. --accent: 0 0% 96.1%;
  33. --accent-foreground: 0 0% 9%;
  34. --destructive: 0 84.2% 60.2%;
  35. --destructive-foreground: 0 0% 98%;
  36. --border: 0 0% 89.8%;
  37. --input: 0 0% 89.8%;
  38. --ring: 0 0% 3.9%;
  39. --chart-1: 12 76% 61%;
  40. --chart-2: 173 58% 39%;
  41. --chart-3: 197 37% 24%;
  42. --chart-4: 43 74% 66%;
  43. --chart-5: 27 87% 67%;
  44. --radius: 0.5rem;
  45. --crypto-up: 0 70% 55%;
  46. --crypto-down: 220 70% 55%;
  47. --crypto-neutral: 0 0% 50%;
  48. /* 시맨틱 색상 변수 */
  49. --text-primary: #333;
  50. --text-secondary: #666;
  51. --text-muted: #999;
  52. --text-link: #0060a9;
  53. --text-link-hover: #c7511f;
  54. --bg-page: #fff;
  55. --bg-elevated: #f9f9f9;
  56. --bg-subtle: #f4f4f4;
  57. --bg-input: #fff;
  58. --border-default: #eaeaea;
  59. --border-light: #eee;
  60. --border-strong: #ccc;
  61. --shadow-color: rgba(0,0,0,0.12);
  62. --brand-orange: #F7931A;
  63. --brand-orange-hover: #e5851a;
  64. --color-danger: #d51b28;
  65. --color-success: #4caf50;
  66. --color-warning-bg: #fefce8;
  67. --color-warning-text: #92400e;
  68. --overlay-color: rgba(0,0,0,0.5);
  69. --sidebar-active-bg: #fff3e0;
  70. --list-row-active: #faffd1;
  71. --btn-default-border: #b3b3b3;
  72. --btn-default-hover: #e3e3e3;
  73. --btn-submit-shadow: #d38817;
  74. }
  75. .dark {
  76. --background: 0 0% 3.9%;
  77. --foreground: 0 0% 98%;
  78. --card: 0 0% 3.9%;
  79. --card-foreground: 0 0% 98%;
  80. --popover: 0 0% 3.9%;
  81. --popover-foreground: 0 0% 98%;
  82. --primary: 0 0% 98%;
  83. --primary-foreground: 0 0% 9%;
  84. --secondary: 0 0% 14.9%;
  85. --secondary-foreground: 0 0% 98%;
  86. --muted: 0 0% 14.9%;
  87. --muted-foreground: 0 0% 63.9%;
  88. --accent: 0 0% 14.9%;
  89. --accent-foreground: 0 0% 98%;
  90. --destructive: 0 62.8% 30.6%;
  91. --destructive-foreground: 0 0% 98%;
  92. --border: 0 0% 14.9%;
  93. --input: 0 0% 14.9%;
  94. --ring: 0 0% 83.1%;
  95. --chart-1: 220 70% 50%;
  96. --chart-2: 160 60% 45%;
  97. --chart-3: 30 80% 55%;
  98. --chart-4: 280 65% 60%;
  99. --chart-5: 340 75% 55%;
  100. --crypto-up: 0 70% 60%;
  101. --crypto-down: 220 70% 60%;
  102. --crypto-neutral: 0 0% 63.9%;
  103. /* 시맨틱 색상 변수 */
  104. --text-primary: #e5e5e5;
  105. --text-secondary: #a3a3a3;
  106. --text-muted: #737373;
  107. --text-link: #60a5fa;
  108. --text-link-hover: #f59e0b;
  109. --bg-page: #171717;
  110. --bg-elevated: #1e1e1e;
  111. --bg-subtle: #262626;
  112. --bg-input: #262626;
  113. --border-default: #333;
  114. --border-light: #2a2a2a;
  115. --border-strong: #444;
  116. --shadow-color: rgba(0,0,0,0.4);
  117. --brand-orange: #F7931A;
  118. --brand-orange-hover: #f59e0b;
  119. --color-danger: #ef4444;
  120. --color-success: #22c55e;
  121. --color-warning-bg: #422006;
  122. --color-warning-text: #fef08a;
  123. --overlay-color: rgba(0,0,0,0.7);
  124. --sidebar-active-bg: #3d2800;
  125. --list-row-active: #2a2a00;
  126. --btn-default-border: #555;
  127. --btn-default-hover: #333;
  128. --btn-submit-shadow: #b8700f;
  129. }
  130. }
  131. @layer base {
  132. * {
  133. @apply border-border;
  134. }
  135. body {
  136. @apply bg-background text-foreground;
  137. }
  138. }
  139. // 웹 에디터 글씨 크기기
  140. .ql-snow .ql-picker.ql-size .ql-picker-label::before,
  141. .ql-snow .ql-picker.ql-size .ql-picker-item::before {
  142. content: attr(data-value) !important;
  143. font-size: 14px;
  144. }
  145. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="11px"]::before {
  146. content: "11px" !important;
  147. }
  148. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="13px"]::before {
  149. content: "13px" !important;
  150. }
  151. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="15px"]::before {
  152. content: "15px" !important;
  153. }
  154. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]::before {
  155. content: "16px" !important;
  156. }
  157. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="19px"]::before {
  158. content: "19px" !important;
  159. }
  160. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]::before {
  161. content: "24px" !important;
  162. }
  163. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]::before {
  164. content: "28px" !important;
  165. }
  166. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]::before {
  167. content: "30px" !important;
  168. }
  169. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]::before {
  170. content: "34px" !important;
  171. }
  172. .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]::before {
  173. content: "38px" !important;
  174. }
  175. .ql-snow .ql-toolbar button.ql-file {
  176. background: transparent;
  177. border: none;
  178. padding: 0;
  179. }
  180. select, input, textarea {
  181. font-size: 1rem;
  182. padding: 5px;
  183. color: var(--text-primary);
  184. background: var(--bg-input);
  185. border: 1px solid var(--border-strong);
  186. border-radius: 3px;
  187. transition: border-color 0.3s ease;
  188. line-height: inherit;
  189. &:focus {
  190. outline: none;
  191. border-color: var(--text-link);
  192. -webkit-box-shadow: inset 1px 2px 2px rgba(0, 0, 0, 0.05), 0 0 4px rgba(44, 112, 170, 0.8);
  193. box-shadow: inset 1px 2px 2px rgba(0, 0, 0, 0.05), 0 0 4px rgba(44, 112, 170, 0.8);
  194. }
  195. }
  196. // 모든 버튼 속성값
  197. .btn {
  198. display: inline-block;
  199. padding: 5px 15px;
  200. border-radius: 4px;
  201. height: auto;
  202. text-align: center;
  203. cursor: pointer;
  204. }
  205. // 기본 버튼
  206. .btn-default {
  207. color: var(--text-primary);
  208. background: var(--bg-subtle);
  209. border: 1px solid var(--btn-default-border);
  210. -webkit-box-shadow: inset 0 -1px 0 0 var(--btn-default-border);
  211. box-shadow: inset 0 -1px 0 0 var(--btn-default-border);
  212. &:hover {
  213. background: var(--btn-default-hover);
  214. }
  215. }
  216. // 제출 버튼
  217. .btn-submit {
  218. color: #fff;
  219. background: var(--brand-orange);
  220. border: 1px solid var(--brand-orange);
  221. -webkit-box-shadow: inset 0 -2px 0 0 var(--btn-submit-shadow);
  222. box-shadow: inset 0 -2px 0 0 var(--btn-submit-shadow);
  223. &:hover {
  224. background: var(--brand-orange-hover);
  225. border-color: var(--brand-orange-hover);
  226. }
  227. }